Web: 보물
문제: http://ctf.j0n9hyun.xyz:2025
Page 숫자 중에 비밀이 있고 그곳에 보물을 숨겨놨다고 한다.
아래 3개의 Page 버튼을 누르면 페이지 하단에 특정 문자열이 나타난다.
이 문자열은 Page 1, Page 2, Page 3 버튼 마다 달랐다.
문제 페이지를 더 살펴보다가 page 파라미터가 url에 있기에 url에서 파라미터 값을 버튼에 없는 다른 숫자로 설정해봤다.
ex) 4, 5, 6, ...
그 결과 버튼에 있는 값 외에도 특정 문자열이 출력된다는 것을 알 수 있었다.
페이지 숫자의 비밀에 보물을 숨겨놨다고 하니 page의 값을 하나씩 증가시키다 보면 flag값이 나올 것 같다.
Brute force 공격을 해야하니 파이썬으로 exploit 코드를 작성해보겠다.
import requests
url = "http://ctf.j0n9hyun.xyz:2025/?page="
for i in range(1, 10000):
result = requests.get(url+str(i))
if("HackCTF" in result.text):
print(result.text)
break
print("page", i)
문제 페이지의 url에 page 파라미터 값을 1씩 증가시켜가면서 request를 보내봤다.
그리고 요청 결과에 "HackCTF"가 있다면 flag가 있다는 뜻이므로 해당 text를 출력하도록 했다.
그 결과 Page 1225에서 flag를 얻을 수 있었다.
느낀점
Brute force 공격임을 눈치챘다면 비교적 빨리 문제를 해결했을 것이다.
문제 자체는 어렵지 않지만 해결 방법에 접근 하기까지는 시간이 꽤 걸렸던 것 같다.
문제를 많이 풀어봐야 문제 해결법에 더 빨리 접근할 수 있을 것 같다.
'Study > Web Hacking' 카테고리의 다른 글
[suninatas] Game 01 (1) | 2022.05.10 |
---|---|
[HackCTF] Guess me (1) | 2022.05.02 |
[HackCTF] Button (1) | 2022.04.05 |
[HackCTF] Hidden (1) | 2022.04.04 |
[HackCTF] / (1) | 2022.03.28 |