Fascination
article thumbnail
Published 2022. 5. 1. 05:33
[HackCTF] Web: 보물 War Game & CTF/HackCTF

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
profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!