<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">
버튼을 누르면 page=1에 대한 get 요청 결과로 값을 출력해준다.
숫자 중에 보물을 숨겨놨다고 하니, brute force 를 통해 HackCTF를 포함하는 response가 있을 때까지 get 요청을 보내본다.
import requests
for i in range(4, 5000):
res = requests.get("http://ctf.j0n9hyun.xyz:2025/?page="+str(i))
if "HackCTF" in res.text:
print(res.text)
break
작성한 코드는 위와 같다.
특정 범위가 정해져 있지 않기 때문에 범위는 처음에 2000으로 해보고, 안 되면 5000으로 해봐서 플래그를 구할 수 있었다.
[LINE CTF 2024] jalyboy-jalygirl (0) | 2024.04.10 |
---|---|
[LINE CTF 2024] jalyboy-baby (0) | 2024.03.24 |
[HackCTF] Button (0) | 2022.01.07 |
[HackCTF] / (Web) (0) | 2022.01.07 |
[HackCTF] Hidden (0) | 2021.05.03 |