Reflected XSS : LAB [7]
DATE : 2024/1/15
Last updated
DATE : 2024/1/15
Last updated
이번에 다뤄볼 Reflected XSS LAB에서는 작은 따옴표와 역슬래쉬를 사용할 수 없는 사례이다.
일단 블로그 검색 기능이 어떻게 구현되어 있는지 확인하기 위해
hanhxx를 검색 바에 입력해보았다. 이때 response packet을 보면
사용자가 입력한 값이 JavaScript에서 사용 되는 걸 알 수 있다.
LAB에서는 작은 따옴표와 역슬래쉬를 사용할 수 없기 때문에 search parameter에
angle brackets, double quote, single quote를 입력해보면
작은 따옴표 single quote만 역 슬래쉬가 붙으면서 escape 되는 걸 볼 수 있다.
그렇다면 우리는 스크립트를 실행 시키기 위해서 <script> tag를 삽입할 수 있다!
사용자가 입력한 값이 제일 먼저 사용되는 위치는 searchTerms 변수에 할당하는 부분으로
앞에 있는<script> tag를 이용해 마감 태그를 넣게 되면 __INPUT__을 감싸는 따옴표에서 벗어날 수 있다.
</script>를 검색 바에 입력하게 되면 위와 같이 코드가 완성되면서
';document.write();는 일반적인 문자열로 화면에 출력될 것이다.
여기서 중요한 건 </script>를 넣음으로써 따옴표에서 벗어나
스크립트를 실행하기 위해 새로운 태그를 추가해 alert(1)을 넣어주면
변수 searchTerms을 정의하는 <script> tag에 이어 alert(1)을 호출하고 있는 <script> tag가 완성된다.
마지막으로 브라우저 상에서 팝업 창을 확인하기 위해 search parameter에
위와 같이 스크립트를 삽입하게 되면
새로운 <script> tag를 넣으면 원하는 스크립트를 실행할 수 있게 된다는 것!
성공적으로 팝업 창이 뜬 결과를 볼 수 있다.