전체 글 82

level 2 DOM XSS

엔드 포인트 분석/vuln@app.route("/vuln")def vuln(): param = request.args.get("param", "") return render_template("vuln.html", nonce=nonce, param=param)해당 함수에서는 파라미터를 사용자에게 받고 받은 값을 param에 넘겨준다. 그리고 vuln.html을 반환한다. 여기서 vuln.html을 반환할때 render_template함수를 사용하고 있기 때문에 XSS는 어려울것으로 예상된다. vuln.html{% extends "base.html" %}{% block title %}Index{% endblock %}{% block head %} {{ super() }} {% endblock ..

CTF & Wargame(WEB) 2025.04.22

level 2 Relative Path Overwrite Advanced

index.php, vuln.php, main.php, report.php 등 거의 모든 코드들이 이전 문제와 유사하다.하지만 이 문제의 차이점은 404.php 파일과 filter.js가 static 폴더에 저장된다는 점이다. 이렇게 vuln 페이지에 접속하면 404.php에 의해 /filter.js not found라는 문구가 출력되는 것을 볼 수 있다. 따라서 현재 vuln 페이지에서 filter.js의 경로를 /filter.js로 지정하고 있기 때문에 filter.js가 vuln페이지에서 불러와지지 않는 것이다. 이에 따라 404.php가 로드되어 filter.js가 덮어씌워졌다. 따라서 우리는 404.php를 이용해 filter.js를 덮어쓸 것이다.url에 /를 하나만 더 추가해주면 filter..

CTF & Wargame(WEB) 2025.04.21