본문 바로가기

Dreamhack WarGame10

[Dreamhack] csrf-2 문제 풀이 여러 기능과 입력받은 URL을 확인하는 서비스를 제공해주므로 웹 해킹 문제로 접근한다. vuln(csrf) page @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 xss 공격을 방지하기 위해 frame, script, on 태그를 *로 필터링한 param를 return해주는 페이지이다. flag @app.route("/flag", methods=["GET", "POST"]) def flag(): if request.method ==.. 2024. 3. 15.
[Dreamhack] csrf-1 문제 풀이 여러 기능과 입력받은 URL을 확인하는 서비스를 제공하므로, 웹 해킹 문제로 접근한다. CSRF-1 의 Home 에 4가지 page가 존재함을 확인할 수 있다. 문제에서 첨부된 파일을 확인해보면 각각의 엔드포인트의 페이지에 대한 function을 알 수 있다. vuln(csrf) page @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 값을 소문자로 바꿔주고, frame, script, on 들에 대한 pa.. 2024. 3. 15.
[Dreamhack] xss-1 문제 풀이 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 웹 서비스이므로 웹으로 접속한다. XSS에 관한 문제로 보이며 vlun(xss) page와 memo, flag 매뉴얼이 존재한다. 여기서, 각각의 기능에 대해 알기 위해서 주어진 문제 파일의 압축을 풀고 python으로 작성된 파일을 열어보자. #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) .. 2024. 1. 6.
[Dreamhack] Cookie 문제 풀이 우선, 쿠키로 인증 상태를 관리하는 로그인 서비스 문제이므로 웹으로 접속하자. 여기서, Login 버튼을 누르면, 로그인 페이지가 나온다 이제, 문제에서 주어진 파일을 통해 압축을 풀어서 python 파일을 열어보자 #!/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.. 2024. 1. 4.