Write Up
해당 Lab은 타사 라이브러리 가젯 때문에 DOM XSS가 발생하는 경우이다. 문제를 풀기 위해 수동으로도 점검이 가능하지만, 시간이 매우 오래 걸릴 수 있으므로 DOM Invader 사용을 권고한다.
위 그림 1과 같이 DOM Invader 설정을 on 하고, Prototype Pollution에 대한 Attack Type을 설정해줘야 한다.
DOM Invader가 url fragment string의 hash 속성에서 prototype pollution 공격 vector 2가지를 식별했음을 확인할 수 있다.
Scan for gadget을 Click 하여 스캔을 실시한다.
DOM Invader가 hitCallback 가젯을 통한 setTimeout() sink 접근에 성공했다. exploit을 진행하면 아래와 같이 DOM XSS를 유발시킬 수 있다.
하지만 우리 Lab의 목표는 victim에게 exploit payload를 전달하는 것이다. exploit server를 통해 아래와 같은 코드를 제작하였다.
deliver exploit code
Hello, world!
<script>
location.href="https://0af60093045b77e8801e2b24008b0011.web-security-academy.net/chat#__proto__[hitCallback]=alert%28document.cookie%29"
</script>