cookie가 설정안되어 있어도 되는 이유(답 스포주의)
@app.route("/change_password")
def change_password():
    session_id = request.cookies.get('sessionid', None)
    try:
        username = session_storage[session_id]
        csrf_token = token_storage[session_id]
    except KeyError:
        return render_template('index.html', text='please login')
    pw = request.args.get("pw", None)
    if pw == None:
        return render_template('change_password.html', csrf_token=csrf_token)
    else:
        if csrf_token != request.args.get("csrftoken", ""):
            return '<script>alert("wrong csrf token");history.go(-1);</script>'
        users[username] = pw
        return '<script>alert("Done");history.go(-1);</script>'

flag 페이지에서
<image src="/change_password?pw=admin&csrftoken=7505B9C72AB4AA94B1A4ED7B207B67FB">
위 처럼 입력하면 풀리는것은 알고 있습니다.
그런데 저렇게 입력하면 change_password함수 첫 줄에 sessionid가 설정 안되어 있고 따라서 session_id가 None이 됩니다.
try 구문에서 username은 session_storage[None]이 되는데 이때 에러가 발생하여 index.html로 redirect되어야하지 않나요?

#web
작성자 정보
답변 0
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기