상세 컨텐츠

본문 제목

[Dreamhack] file-download-1

WEB HACKING/Dreamhack

by koharin 2022. 11. 24. 16:24

본문

728x90
반응형

이렇게 파일이 올라가고, 저 링크를 누르면

read 경로에 name 필드로 올린 파일 명이 지정이 된다.

@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)

app.py 부분의 read_memo() 부분인데, {UPLOAD_DIR}/{filename} 경로의 파일을 읽는데 filename에 /나 ..를 필터링하고 있지 않아서 filename을 이용하여 UPLOAD_DIR 이외의 경로의 파일을 읽을 수 있다.

 

728x90
반응형

'WEB HACKING > Dreamhack' 카테고리의 다른 글

[Dreamhack] csrf-1  (0) 2022.12.10
[Dreamhack] proxy-1  (0) 2022.01.04
[Dreamhack] command-injection-1  (0) 2022.01.03
[Dreamhack] pathtraversal  (0) 2021.03.08
[Dreamhack] simple_sqli (SQL Injection)  (0) 2021.02.09

관련글 더보기