페이지를 다 눌러보자.
그러면 아래에 엄청 긴 암호가 나온다. 아무래도 디코딩을 해봐야 할 것 같다.
[page1]
1dce4fb8a0e7be0692f72f87512c054a3dd1cfff4716a8e1a5dffbbbf757274bb479330d70bdfc3d622359ab85dd05d20a14b56798a67b8d3059233aaf7977ab
[page2]
4a6141240920563136d239d4027f6e44f4d7ee8b3091217c8cabae6d3650ce62e3662a8ebfcc6a29930c78e33623bbc8b4dbdb77ab800d8d01f8d7171d2c29b5
[page3]
a7dee220acb8f122abc4716ac1d9e10d637585d28ee77994716058b491056c09d9b50798a97c17746632a46e24984a12cbfc4fe4a6a804acc1d861f025a0e2b8
흠... 인코딩도 디코딩도 아닌 것 같다.
근데 url을 조작하다가 신기한 걸 발견했다.
http://ctf.j0n9hyun.xyz:2025/?page=4
a7074d5371eebadecfd776cd9ed6323dc0cfa7691112a18257da83db6c05eb0d5b0f50d96c3f49faa7b2f031482cba923e7c16236fcd232c361bf17a15d822aa
페이지가 4부터 연속해서 계속 나오길래, 1298374같이 큰 수도 입력해봤는데 문자열이 나왔다.
특정한 규칙대로 나오는 문자열인 걸까?
그리고 url조작을 계속해 본 결과, 숫자뿐만이 아니라 문자를 넣어도 문자열이 나온다는 것을 알았다.
secret이나 flag등을 입력해도 이 문자열은 계속 나온다.
해시값이었다! 근데 검색해보니까 1부터 flag가 나올때까지 계속 파라미터를 보내야 하는 것 같다.
파이썬으로 스크립트를 짜보았다.
import requests
URL = "http://ctf.j0n9hyun.xyz:2025/?page="
for i in range(0, 1000):
response = requests.get(URL+str(i))
if "HackCTF" in response.text:
print(i," flag")
break
print(i)
범위를 어디까지 해야할 지 모르겠어서 일단 1000으로 해봤는데, 찾지 못했다.
범위를 늘려서 다시 도전해보았다.
import requests
URL = "http://ctf.j0n9hyun.xyz:2025/?page="
for i in range(1000, 2000):
response = requests.get(URL+str(i))
if "HackCTF" in response.text:
print(i," flag")
break
print(i)
1225에서 찾을 수 있었다.
해당 숫자를 입력해주면 다음과 같이 flag를 얻을 수 있다.
http://ctf.j0n9hyun.xyz:2025/?page=1225
good try라니... 왠지 놀리는 것 같다.
'HackCTF > Web' 카테고리의 다른 글
[HackCTF] Web - Time (0) | 2021.08.12 |
---|---|
[HackCTF] Web - Login (0) | 2021.08.12 |
[HackCTF] Web - Button (0) | 2021.07.16 |
[HackCTF] Web - Hidden (0) | 2021.07.16 |
[HackCTF] Web - / (0) | 2021.07.16 |