문제 설명


 

웹해킹 문제 링크 들어가면 아래와 같이 나온다.

 

 

내 메모를 업로드하라길래 Upload My memo 들어가 보니

Filename과 Content 입력한 뒤 업로드가 가능한 창이 뜬다. 

 

파이썬 쉘(IDLE)에서 ctrl+O 해서 문제 파일인 app.py를 열어 보니 이런 소스코드가 나왔다. 

 

 

사실 이쯤에서 역대급으로 막막했다...

이것저것 구글링을 해 보니 일단 임의로 아무 파일이나 업로드해야 하는 것 같아서 해 보았다. 

업로드 버튼을 클릭하면

이렇게 내가 업로드한 파일을 확인할 수 있다. 

클릭해서 들어가면 내가 입력한 Content의 내용도 보인다. 


이 아래부터는 전적으로 다른 사람들의 풀이에 의존한 내용이다.

 

문제 코드를 다시 확인해 보면, 

이렇게 upload 부분에서는 

        if filename.find('..') != -1:
            return render_template('upload_result.html', data='bad characters,,')

find 명령어를 이용해 상위 디렉토리 이동 명령어인 '..'을 탐지한다. 

'..'이 탐지되면 'bad characters,,'을 출력한다. 어쨌든 ..을 포함한 파일을 업로드하지 말라는 거인 듯.

 

새로운 파일의 이름을 ../flag.py로 하여 업로드 했더니 역시나 'bad characters,,' 라고 뜬다.

 

 

그러나 read 부분에서는 '..'을 탐지하지 않는다. 

 

read가 도대체 어디에 있는 거지... 싶어서 막막했는데 문제 URL을 보니까

찾았다

 

저 URL 뒷부분을 

read?name=../flag.py로 수정했더니

찾았다

 

끝!

지금까지 푼 것 중엔 제일 어려웠던 것 같다

'SWUFORCE > 워게임 풀이' 카테고리의 다른 글

[Dreamhack] Flying Chars  (0) 2024.04.02
[Dreamhack] ex-reg-ex(web)  (0) 2024.04.02
[Dreamhack] cookie(web)  (1) 2024.03.26
[Dreamhack] 64se64 문제 풀이  (0) 2024.03.19
[Dreamhack] baby-linux 문제 풀이  (0) 2024.03.19

+ Recent posts