| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- Webhacking #CTF #Write-up #WolvCTF
- amd64 #x86-64 #x64 #레지스터 #컴퓨터 구조
- pointer
- dreamhack #rev-basic #reversing
- Systemhacking #Pwnable #CTF #Write-up #WolvCTF
- 포인터_보고서
- Layer7 #해킹 #동아리 #시연회 #부엉이
- 이너
- Today
- Total
stxxp
HackCTF(Web) | 보물 & login 본문
HackCTF writeup
① 보물
web문제입니다. URL을 통해 들어가면

다음과 같이 뜹니다. page 1,2,3 버튼을 각각 누를 때마다

이런 식으로 나타나네요. GET방식으로 전송하는 것을 볼 수 있습니다. 문제에서 페이지 숫자 중에 비밀이 있고 그곳에 보물을 숨겨놓았다고 했으니 1부터 큰 숫자까지 반복하여 해당 페이지로 접속하는 파이썬 코드를 작성해보려고 합니다.
URL에서
이 부분은 항상 일치하고 뒤에 숫자만 바뀌는 것이기 때문에 다음과 같이 코드를 짤 수 있습니다.
|
1
2
3
4
5
6
7
8
|
import requests
link = "http://ctf.j0n9hyun.xyz:2025/?page="
for i in range(1, 10000):
if "HackCTF" in (requests.get(link+str(i))).text:
print(str(i) + "----> Find!")
break
print(str(i)+"||No find")
|
Flag 양식인 HackCTF가 나올 때까지 계속 반복문을 돌리다 보면 아래처럼 반복문을 탈출하는 숫자가 나옵니다.

이제 URL에 1225 값을 넣고 해당 페이지로 접속하게 되면 flag가 나온 것을 볼 수 있습니다.
ctf.j0n9hyun.xyz:2025/?page=1225

② login

로그인 창이 보입니다. View Source를 클릭해보니 php코드가 뜨네요.

코드를 보면 id와 pw에 각각 아이디와 비밀번호를 입력받고 이를 SQL로 변환해서 DB에 전송하고 있습니다.
그리고 DB에서 해당하는 아이디와 비밀번호를 검증하고 있는 것 같은데 if문을 통해 아이디를 검사하고 있습니다. 아이디를 입력하는 부분에서 SQL injection이 발생할 수 있겠네요.
admin으로 로그인하기 위해 다음과 같이 입력합니다.

admin'--이 안돼서 admin'#으로 했더니

Flag가 나오네요! 전형적인 SQL injection 문제였습니다.
'Security > WebHacking' 카테고리의 다른 글
| [WolvCTF] Web: The Gauntlet write-up (4) | 2024.03.19 |
|---|