userid를 입력 받는데, 어떠한 검사도 하지 않는다.
@app.route('/get_info', methods=['GET', 'POST'])
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에 ../flag를 입력하면, /api/flag로 넘어가서
@app.route('/api/flag')
@internal_api
def flag():
return FLAG
flag를 반환받는다.
하지만, {} 로 flag가 출력되지 않는다.
burp suite를 통해 확인해보자.
userid가 undefined로 되어있다.
이 값을 다시 ../flag로 바꿔주자.
그러면, flag가 출력된다.
'Dream hack > LEVEL 1' 카테고리의 다른 글
Dreamhack (image-storage) (0) | 2023.03.27 |
---|---|
Dreamhack (Carve Party) (0) | 2023.03.26 |
Dreamhack (csrf-2) (0) | 2023.03.24 |
Dreamhack (command-injection-1) (0) | 2023.03.24 |
Dreamhack (xss-2) (0) | 2023.03.24 |