Web: 보물
페이지 숫자 중에 비밀이 하나 있고 그 곳에 모든 것을 두고왔다는 것을 보니 그 곳에 플래그가 있는 것 같다
<style>
body {background-color: white;}
.center {
display: block;
margin-left: auto;
margin-right: auto;
width: 50%;
}
</style>
<body>
<h1 align="center" style="margin-top:20px">보물</h1>
<p align="center">내 페이지 숫자 중엔 비밀이 하나 있지...그곳에 보물을 숨겨놨다. 원한다면 찾아봐라 모든 것을 그곳에 두고 왔다!</p>
<img src="treasure.jpg" class="center" style="width:300px;height:234px"></img>
<div align="center">
<form action="/" method="get" style="display:inline-block;">
<button type="submit" value="1" name="page">Page 1</button>
</form>
<form action="/" method="get" style="display:inline-block;">
<button type="submit" value="2" name="page">Page 2</button>
</form>
<form action="/" method="get" style="display:inline-block;">
<button type="submit" value="3" name="page">Page 3</button>
</form>
</div>
</body>
<p align="center">
소스 코드를 보니 form의 method는 get방식인 것을 확인할 수 있었다
page에 넘기는 value를 다르게 주고 있는 것 같으니 확인해보자
우선 페이지 3개를 확인해보니 아래 암호같은 문자열이 출력되는 것을 확인할 수 있었다
page= 뒤에 값을 다르게 주면 이 문자열이 변하는 것 같아 다른 숫자도 입력해 보았다
ㅎ.. 1부터 20까지 하나하나 입력해본 결과
문자열은 모두 다르게 출력되지만 FLAG는 찾을 수 없어 더 높은 숫자를 입력해야 한다고 생각했다
파이썬 requests 모듈을 사용해보자
import requests
URL = 'http://ctf.j0n9hyun.xyz:2025/?page='
for i in range(1,찾고자하는 범위):
response = requests.get(URL+str(i))
if "HackCTF" in response.text:
print(i,"find FLAG")
break
print(i, "No FLAG")
다음과 같이 스크립트를 작성할 수 있는데 찾고자하는 범위를 100 500 1000 5000 이렇게 늘려나갔다
범위를 5000으로 했을 때 1225번 페이지에서 플래그를 찾을 수 있다고 발견할 수 있었다
이제 다시 해당 페이지로 돌아가 url뒤에 1225를 넘겨줘보자
플래그를 획득할 수 있었다 :)
성공 ~.~
'War Game & CTF > HackCTF' 카테고리의 다른 글
[HackCTF] Web: Button (0) | 2022.05.01 |
---|---|
[HackCTF] Web: Hidden (0) | 2022.04.03 |
[HackCTF] Web: / (0) | 2022.03.29 |