article thumbnail image
Published 2022. 5. 2. 16:13

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
복사했습니다!