이번에 두번째로 참가해본 angstromCTF
시간이 없어서 딱 두 문제만 풀었다.
난이도도 그렇고 컨셉도 재미있는 대회인데 아쉽다.
두번째로 쉬웠던 웹해킹 문제이다.
문제 설명에 Follow the crumbs 라고 적혀있는데
crumbs 는 부스러기 라는 뜻이다.
웬지 헨젤과 그레텔이 생각나는 문제였다.
역시나 별 다른 소스없이 문제 페이지 주소만 주어진다.
문제 페이지에 접속하면 아무것도 없고 딱 저렇게만 나온다.
Go to ~~~~ 라고 적혀있는데,
저걸 URL에 그대로 쳐봤다.
URL에 쳐보니 또다시 Go to ~~~ 라고 이번엔 다른 문자열들이 나온다.
문제 제목인 crumbs 처럼,
헨젤과 그레텔의 빵 부스러기처럼 저 주소를 계속 따라가야하는듯 하다.
한번 더 테스트해봤는데 역시나 또다시 Go to ~~ 가 나왔다.
그럼 Go to 가 안나올때까지 따라가보자.
import requests
goto = ''
while True:
url = 'https://crumbs.web.actf.co/'
url = url + goto
r = requests.get(url)
goto = r.text.split('Go to ')[1]
print(goto)
Python의 requests 라이브러리를 사용하면 아주 짧게 구현할 수 있다.
goto 라는 빈 변수를 하나 선언하고,
requests.get(url)로 맨 처음 페이지에 접속한 뒤에,
Go to 뒤에오는 문자열을 잘라서 goto 변수에 저장하고
url + goto 주소로 다시 requetst.get(url)을 이용해 접속하는
무한 반복하는 코드이다.
맨 끝부분만 잘라왔는데
코드를 실행시키면 한참을 돌아간다.
페이지가 적어도 200개는 넘는듯 했다.
마지막으로 0f91fd8b-9546-445b-80f4-86405ddff9a0 주소에서 IndexError가 나면서
코드가 종료되는데,
에러가 나는 이유는 웹페이지에서 Go to 라는 문자열을 찾지 못했기 때문이다.
Go to 를 왜 찾지 못했냐면
저 페이지엔 Go to 대신 플래그가 적혀있기 때문이다.
'CTF > 웹해킹' 카테고리의 다른 글
[EZCTF] Super Secure - 웹해킹 / SQL Injection (50) | 2022.05.21 |
---|---|
[EZCTF] I made a blog! - 웹해킹 / LFI / PHP wrapper (60) | 2022.05.17 |
[angstromCTF] The Flash - 웹해킹 / 자바스크립트 (49) | 2022.05.14 |
[WPICTF] ZOOP - 웹해킹 (62) | 2022.04.23 |
[CrewCTF] Cuaas - 웹해킹 / SSRF / HTTP Smuggling (34) | 2022.04.20 |