File Download (1)

khm_studylog·2023년 2월 9일
0

web hacking

목록 보기
2/3

File Download 취약점이 존재하는 웹 서비스입니다.

flag.py를 다운로드 받으면 플래그를 획득할 수 있습니다.

Filename과 Content를 입력해서 Upload 하면, 메인화면 리스트에 추가되고 아래처럼 내용을 볼 수 있다.


위 화면을 통해 {Filename+Memo}가 리스트에서 선택한 파일의 제목이 되고 Content 안에는 입력한 Content값이 그대로 들어가는 것을 확인할 수 있다.

문제에서 flag.py를 다운받으라고 했으니 flag.py 파일을 만들면 된다.

리스트에서 보여지는 화면이 다운로드라고 생각하면 된다.


추가로 이 문제는 파일 다운로드 취약점을 이용하는 것이니 filename=flag.py 가 아니라 디렉토리 이동이 필수적일 것이다.

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

하지만 위 코드로 인해 성립되지 않는다.

../ 의미

파일 경로와 파일명 필터링 미흡하여 ../를 이용해 상위 디렉터리에 접근 가능하다.


그래서 URL을 이용해야 한다.

Filename값이 URL의 name 파라미터에 그대로 노출된다.

name 파라미터 값에 ../flag.py 를 넣어주었다.


참고
https://hec-ker.tistory.com/360

0개의 댓글