워게임/CTFlearn

[CTFlearn] Gobustme? - 웹해킹 / dirb / Python

SecurityMan 2022. 11. 9. 11:00

 

CTFlearn의 서른다섯번째 문제

 

이번엔 easy 난이도의 웹해킹 문제이다.

 

반응형

 

문제 설명을 일어보면 ghost 들이 웹사이트를 만들었는데

 

숨겨진 장소가 있는것 같다고 한다.

 

아래쪽에 웹 페이지 주소가 적혀있다.

 

 

문제페이지에 접속하면 이런 화면이 나온다.

 

ghost 들이 웹사이트에 침임해서 flag 를 어딘가에 숨겨놓았다고 적혀있다.

 

 

스크롤을 내려보면 아래쪽에 가사같은게 써있는데

 

마지막 줄에 보면 common wordlist 가 도움이 될거라고 적혀있다.

 

 

common wordlist 를 눌러보면 이런 화면이 나온다.

 

웹 페이지를 구성할때 자주 쓰는 파일, 폴더명이 주욱 적혀있다.

 

이걸 주소창에 하나씩 대입해보면 실마리를 찾을 수 있을 것이다.

 

 

이번 문제처럼 URL에 무차별적으로 대입해서 웹 구조를 파악하는데 유용한 도구가 있다.

 

dirb 라는 도구이고 DirBuster 의 약자이다.

 

common wordlist 를 가지고 하나씩 URL에 자동으로 대입해본 뒤 결과를 보여준다.

 

 

간단하게 dirb <url> 형태로 실행할 수 있다.

 

 

실행하고 조금 기다려보면 이렇게 몇개의 디렉터리와 페이지가 있는것이 확인된다. 

 

 

여러 결과 중 가장 매력적인 

 

/flag 경로로 접근해봤더니 훼이크였다..

 

 

플래그는 /hide 경로에 있었다.

 

해당 값을 제출하면 문제가 풀린다.

 

import requests

common = 'https://raw.githubusercontent.com/v0re/dirb/master/wordlists/common.txt'

r = requests.get(common)
txt = r.text.split('\n')

for i in range(len(txt)):
    url = 'https://gobustme.ctflearn.com/' + txt[i]
    r = requests.get(url)
    
    if '200' in str(r):
        print(r, url)

 

파이썬 코드를 이용해서도 한번 구현해봤다.

 

간단한 스캔 형태의 문제이기 때문에 이렇게 짧게 구현이 가능하다.

 

common.txt 파일의 내용을 가져와서 \n(줄바꿈)을 기준으로 분리한 뒤,

 

url 뒤에 하나씩 붙여서 테스트 해보는 것이다.

 

만약 응답 코드가 200으로 떴다면, 해당 페이지는 존재하는 것으로 판단해서

 

출력을 시켜주게 된다.

 

 

실행시켜보면 dirb 수행결과와 같이 나오는것을 볼 수 있다.

(너무 오래걸려서 중간에 종료시켰다.)

반응형