전체 글 82

level 2 Client Side Template Injection

문제를 살펴보면 이전의 문제들과 마찬가지로 /vuln, /memo, /flag 페이지가 존재한다. 엔드포인트 분석add_header() 함수@app.after_requestdef add_header(response): global nonce response.headers['Content-Security-Policy'] = f"default-src 'self'; img-src https://dreamhack.io; style-src 'self' 'unsafe-inline'; script-src 'nonce-{nonce}' 'unsafe-eval' https://ajax.googleapis.com; object-src 'none'" nonce = os.urandom(16).hex() r..

CTF & Wargame(WEB) 2025.04.18

level 1 CSRF Advanced

웹 서비스 분석/login : 특정 계정으로 로그인을 할 수 있는 페이지/change_password : 현재 로그인 되어 있는 계정의 비밀번호를 바꿀수 있는 페이지/vuln : 사용자가 입력한 값을 그대로 출력해주는 페이지/flag : param에 입력한 url로 사용자가 이동 엔드 포인트 분석/loginusers = { 'guest': 'guest', 'admin': FLAG}session_storage = {}token_storage = {}@app.route('/login', methods=['GET', 'POST'])def login(): if request.method == 'GET': return render_template('login.html') elif..

CTF & Wargame(WEB) 2025.04.18

level 3 CSP Bypass Advanced

이 문제도 이전에 풀었던 xss, csp bypass 문제와 유사하지만 add_header 함수가 조금 다르다. add_header() 함수 분석@app.after_requestdef add_header(response): global nonce response.headers['Content-Security-Policy'] = f"default-src 'self'; img-src https://dreamhack.io; style-src 'self' 'unsafe-inline'; script-src 'self' 'nonce-{nonce}'; object-src 'none'" nonce = os.urandom(16).hex() return response response.headers[..

CTF & Wargame(WEB) 2025.04.18