ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • cookie
    해킹/웹해킹 실전 2023. 11. 20. 22:55

    https://dreamhack.io/wargame/challenges/6

     

    FLAG를 보여주는 코드에 집중해야한다.

    '/'로 끝나는 홈페이지에서 FLAG를 보여주는데 이 때 브라우저에 저장된 쿠키 중 key값이 username인 값을 가져와 변수 username에 저장하고, username이 admin이라면 FLAG를 보여준다. 

    @app.route('/')
    def index():
        username = request.cookies.get('username', None)
        if username:
            return render_template('index.html', text=f'Hello {username}, {"flag is " + FLAG if username == "admin" else "you are not admin"}')
        return render_template('index.html')

    login을 하면 쿠키에 username이란 key에 value로 username이 저장된다.

    @app.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'GET':
            return render_template('login.html')
        elif request.method == 'POST':
            username = request.form.get('username')
            password = request.form.get('password')
            try:
                pw = users[username]
            except:
                return '<script>alert("not found user");history.go(-1);</script>'
            if pw == password:
                resp = make_response(redirect(url_for('index')) )
                resp.set_cookie('username', username)
                return resp 
            return '<script>alert("wrong password");history.go(-1);</script>'

    따라서 guest / guest로 로그인 한 후 홈페이지로 돌아와 F12 inspector를 열어 쿠키에서 직접 값을 admin으로 고쳐준 후 새로고침 하면 FLAG값을 얻을 수 있다.

    '해킹 > 웹해킹 실전' 카테고리의 다른 글

    csrf-1  (0) 2023.11.21
    xss-2  (0) 2023.11.21
    xss-1  (0) 2023.11.21
    session-basic  (0) 2023.11.21

    댓글

Designed by Tistory.