CTF/웹해킹

[angstromCTF] crumbs - 웹해킹 / Requests

SecurityMan 2022. 5. 15. 11:00

 

이번에 두번째로 참가해본 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 대신 플래그가 적혀있기 때문이다.

반응형