728x90
Description
File Download 취약점이 존재하는 웹 서비스입니다.
flag.py를 다운로드 받으면 플래그를 획득할 수 있습니다.
풀이
step 1. 접속 정보 사이트로 접속
메모를 업로드 하는 페이지가 나온다. 일단 화면에 나와있는데로 업로드를 한번 해보았다.
업로드를 했더니, 메모가 저장이 되었고, 경로는 위 그림처럼 /read?name=my-first-memo인것을 확인할 수 있었다.
그렇다면, read?name= 뒤에 플래그가 저장이 되어 있는 경로를 적어주면 될 것 같아, 코드를 한번 살펴보았다.
step 2. 문제 코드 확인
@APP.route('/read')
def read_memo():
error = False
data = b''
filename = request.args.get('name', '')
try:
with open(f'{UPLOAD_DIR}/{filename}', 'rb') as f:
data = f.read()
except (IsADirectoryError, FileNotFoundError):
error = True
return render_template('read.html',
filename=filename,
content=data.decode('utf-8'),
error=error)
../flag.py 로 들어가보았더니, 플래그를 확인할 수 있었다.
728x90
'dreamhack' 카테고리의 다른 글
[Dreamhack] 64se64 (Beginner) (0) | 2024.02.28 |
---|---|
[Dreamhack] Flying Chars (Beginner) (0) | 2024.01.17 |
[Dreamhack] web-misconf-1 (Beginner) (1) | 2023.11.28 |
[Dreamhack] simple_sqli (LEVEL 1) (1) | 2023.11.28 |
[Dreamhack] pathtraversal (Beginner) (0) | 2023.11.15 |