Write-up/dreamhack.io

[Dreamhack.io] file-download-1

새달아 2021. 8. 2. 19:04

https://dreamhack.io/wargame/challenges/37/?page=2 

 

file-download-1

File Download 취약점이 존재하는 웹 서비스입니다. flag.py를 다운로드 받으면 플래그를 획득할 수 있습니다. Reference Introduction of Webhacking

dreamhack.io

dreamhack.io의 Wargame file-download-1 문제이다.

 

#. 문제분석

 

문제 정보는 다음과 같이 나와있다. File Download 취약점이 존재하는 웹 서비스.

 

'웹 서비스'니까 브라우저에서 주소를 입력하면 접속이 되겠지?

그리고 거기서 flag.py의 위치를 찾아서 다운받으면 되겠다!

 

#. 문제풀이

 

접속 정보는 다음과 같이 나와있다.

이걸 이제 주소창에 입력해보자.

 

아주 잘 들어가진다.

일단 홈 화면에 flag.py를 다운받는 곳은 없으니 웹에서 시키는 대로 메모를 업로드 해보자.

 

Upload My Memo로 들어가면 이런 화면이 나오는데, 나는 그냥 대충 1을 입력해보기로 했다.

 

그러면... 쨘!

처음 화면으로 돌아가면서 내가 쓴 메모가 업로드 되었다.

메모를 클릭해보면,

 

내가 쓴 내용이 나온다.

여기서 URL을 보면 read?name=1라고 되어있는데,

여기에서 path traversal이 발생하면 flag.py를 다운받는 곳으로 이동할 수 있을 것 같다.

그런데 내가 제목과 내용을 둘 다 1이라고 써놔서 name 다음에 오는 내용이 제목인지 내용인지 분간이 안간다;;;

 

표본도 더 얻을 겸, 이번엔 제목은 2, 내용은 22로 입력했더니 위의 URL에서 read?name=2라고 바뀌었다.

그렇다면 name은 내가 입력한 제목을 보여주고,

그 제목을 입력하면 해당하는 내용을 보여주는 구조라고 볼 수 있다.

 

read?name=flag

read?name=flag.py

read?name=flag.txt

를 입력했는데 안뜬다.

 

그래서 상위 디렉토리 이동(../)을 통해 입력해보면,

read?name=../flag

read?name=../flag.py

 

쨘! Flag에 대한 내용을 볼 수 있다. 이렇게 해서 Flag에 대한 내용을 입력하면 끝!