전체 글 80

[dreamhack] level 1 csrf-2

해당 문제의 목표는 관리자 계정으로 로그인하는 것이다. 문제 분석users = { 'guest': 'guest', 'admin': FLAG}위와 같은 코드가 있기에 id : guest, pw : guest로 로그인 해보니, index 페이지에 Hello guest, you are not an admin 라는 문구가 출력되었다./vuln사용자가 param에 입력한 값을 페이지에 출력해준다./flagparam에 입력한 url로 이동/loginid와pw를 입력하여 로그인 할 수 있는 기능/change_password사용자의 비밀번호를 바꿀수 있는 기능엔드포인트 분석/vuln@app.route("/vuln")def vuln(): param = request.args.get("param", "")..

CTF & Wargame(WEB) 2025.04.13

[dreamhack] level 1 csrf-1

엔드포인트 분석/vuln@app.route("/vuln")def vuln(): param = request.args.get("param", "").lower() xss_filter = ["frame", "script", "on"] for _ in xss_filter: param = param.replace(_, "*") return param유저가 입력한 param 값을 소문자로 바꿔서 param 변수에 저자함. frame, script, on을 필터링하고 해당 키워드들을 *로 변환함. /memo@app.route("/memo")def memo(): global memo_text text = request.args.get("memo", None) if t..

CTF & Wargame(WEB) 2025.04.13

[dreamhack] level 1 xss-2

/vuln사용자가 입력한 값을 출력한다/memo사용자가 memo에 입력한 값을 출력한다./flag사용자가 param에 입력한 Url로 이동한다. 엔드포인트 분석/vuln@app.route("/vuln")def vuln(): return render_template("vuln.html")xss-1과는 다르게 /vuln 페이지에서는 render_template 함수를 사용하여 vuln.html을 띄워준다. render_template 함수는 전달된 템플릿 변수를 HTML 엔티티로 변환하여 전달하기 때문에 xss가 발생하지 않는다. /memo@app.route("/memo")def memo(): global memo_text text = request.args.get("memo", "") ..

CTF & Wargame(WEB) 2025.04.12