해킹/Web hacking

dreamhack file-download-1 풀이

공부하는 뚱이 2023. 2. 21. 01:47
반응형

파일 다운로드 취약점을 이용한 문제였다.

접속정보를 받고 접속을 해보니

 

Home, Upload My Memo 그리고 

Your uploaded memos 라고 되어있었다.

 

 

Upload My Memo에 가서 보니 내가 업로드할 수 있는 창이 나왔다.

분명 파일 다운로드 취약점이라 했는데.... 내가 왜 업로드해야 하지 하고 

Filename에 first, Content에 first 라고 입력한 뒤에 Upload해 보았다.

 

Home에 first가 생겼고

 

눌러보니 first 내용도 적혀 있었다.

어떻게 하지 고민하다 파일 이름을 적는 칸에 ../를 넣어보았다.

 

그 결과 bad characters,,라고 되었다.

그럼이제 이 문제를 어떻게 풀어야 할지 감이 잡히기 시작했다.

제목에 취약점을 적어서 flag.py파일을 다운받으면 문제가 해결될 것이다. 

하지만 코드를 살펴보면

 

 

filename.find('..') != -1:

이렇게 차단되어있다. 그렇다면 etc로도 해보면 어떻게 될까

 

그냥 페이지가 나가 버린다.

그럼 '..'이 필터링 되고 있으니 ..을 인코딩 해서 넣어보자.

..을 인코딩하면 %2e%2e가 된다. 

 

 

자 드가자~

 

엥? 그래도 다시 페이지 자체가 나갔다.

흠... 그럼 /까지 전부 인코딩해보자

/를 인코딩하면 %2f가 된다.

그럼

 

가보자

일단 생겼다. 한번 눌러보자

 

와! 정답! FLAG를 얻었다!

 

파일 다운로드 취약점의 중요한 부분인 '../'를 필터링한 문제였고 그것을 우회하는 방법에 대해 알 수 있었던 문제였다.

반응형