Lab: Reflected XSS into a JavaScript string with single quote and backslash escaped

Lab: Reflected XSS into a JavaScript string with single quote and backslash escaped

https://portswigger.net/web-security/cross-site-scripting/contexts/lab-javascript-string-single-quote-backslash-escaped

 

Lab: Reflected XSS into a JavaScript string with single quote and backslash escaped | Web Security Academy

This lab contains a reflected cross-site scripting vulnerability in the search query tracking functionality. The reflection occurs inside a JavaScript ...

portswigger.net

 


XSS 우회

 

[기본 설정] 프록시 설정, ACCESS THE LAB의 주소를 Burp Suite에 설정

 

(1) 블로그내 검색창에 abcdefg을 검색합니다.

 

(2) burp suite에서 해당 패킷을 Repeater로 보내서 확인합니다.

 

 

(3) search에 악의적인 구문을 입력하고 send하여 Response를 확인합니다.

입력 : abcdefg<script>alert('xss')</script>

 

응답 값 내 스크립트 코드가 작은따옴표와 백슬래시로 필터링 되는 것을 확인할 수 있습니다. 

 

(4) 필터링을 피하기 위해 다음과 같이 입력하여 확인해봅니다.

입력 : abcdefg</script><script>alert("xss")</script>

 

응답 값 내 스크립트 코드가 필터링없이 등록되는 것을 확인할 수 있습니다.

 

(5) 블로그 내 검색창으로 이동하여 (4)번 스크립트 코드를 검색합니다.

 

(6) 스크립스 실행 확인

 

[추가설명]

alert(1)은 경고창에 1이 나오는데, alert(document.cookie)를 입력하면 경고창은 뜨지만 글자는 아무것도 나오지 않습니다.

그 이유는 이 테스트 Http Only 설정이 되어있기 때문입니다.

XSS/CSRF 대응방법 중 브라우저에 Http Only 설정을 하는 방법이 있는데, 이 설정을 할 경우 DOM 객체를 통해서 쿠키값을 추출할 수 없습니다.

 

DOM 객체를 통한 쿠키추출 X

 

DOM 객체를 통한 쿠키추출X 결과