본문 바로가기
dreamhack

[Dreamhack] file-download-1 (Beginner)

by yejin_l 2024. 1. 17.
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