Wargame/Dreamhack

[Web] pathtraversal

남바오 2023. 2. 16. 12:29
def get_info():
    if request.method == 'GET':
        return render_template('get_info.html')
    elif request.method == 'POST':
        userid = request.form.get('userid', '')
        info = requests.get(f'{API_HOST}/api/user/{userid}').text
        return render_template('get_info.html', info=info)

코드를 보면 userid는 /api/user에 텍스트값으로 들어간다는 것을 확인할 수 있다.

여기에 ./flag.txt를 입력해보면

아무것도 뜨지 않는다..?

burp suite으로 확인해보면,

guest를 입력했을 땐 userid 가 0으로 제대로 들어간다.

flag 를 넣으면 userid 가 undefined 로 들어가게 된다.

이를 ../flag로 바꿔서 forward 를 보내보면?