on
[Web Hacking] Dreamhack 문제풀이 - Cookie (변조를 사용하여 인증세션...
[Web Hacking] Dreamhack 문제풀이 - Cookie (변조를 사용하여 인증세션...
문제 풀이 간단 요약
1. guest 계정으로 접속
2. 쿠키에 들어가 username을 admin으로 변경
상세 풀이
app.py를 열어보면 아래 코드와 같다
#!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' users = { 'guest': 'guest', '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') @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 'alert("not found user");history.go(-1);' if pw == password: resp = make_response(redirect(url_for('index')) ) resp.set_cookie('username', username) return resp return 'alert("wrong password");history.go(-1);' app.run(host='0.0.0.0', port=8000)
guest 계정과 admin 계정에 관한 정보가 나와있다.
(guest 계정의 패스워드는 guest, admin 계정의 password는 FLAG)
guest 계정으로 접속한 뒤 쿠키 정보를 확인한다
쿠키 값을 보면 guest로 되어있는데, 이 부분을 admin으로 바꾸고 새로고침 하면 FLAG 획득 완료!
from http://kozeldark.tistory.com/158 by ccl(A) rewrite - 2021-07-10 17:26:40