https://dreamhack.io/wargame/challenges/438?writeup_page=6
DOM XSS를 이용해 관리자의 쿠키 값을 탈취해야 한다.

vuln.html의 소스 코드를 살펴보면, param으로 받은 값을 템플릿을 통해 html 화면에 출력하고, “name” 아이디의 객체에 innerHTML을 사용해서 해시(#)에 들어온 값을 삽입하고 있다. 이 부분에서 취약점이 발생한다.
글만 봐서는 이해가 잘 안 갈테니 그림과 함께 설명한다.

param으로 입력 받은 값은 {{ param | safe }}으로 들어가고, 해시태그(#) 뒤에 온 값은 <script>에서 처리해서 id=”name” 객체에 innerHTML(객체의 값 넣기)한다. 이것이 문제가 되는 이유는 현재는 param에 <img> 태그를 사용했지만 이것을 <script>로 변경하고, 해당 <script>의 id를 “name”으로 설정할 시, 해시태그 뒤에 값이 삽입된다.


<script></script> 사이에 해시태그 뒤에 값이 오면서 자바스크립트가 실행된다. 이것을 이용하여 관리자의 쿠키 값을 탈취하면 된다.