개요
- Dom-based XSS 를 검사하는 방법을 정리한다.
- 특히 특정 jquery 라이브러리를 사용하고 있는 경우에 검사하는 방법을 정리한다.
사용중인 jquery 라이브러리 확인
브라우저 콘솔에서 다음 명령을 치면 버전을 확인할 수 있다.
console.log(jQuery().jquery);
jquery 라이브러리의 버전 히스토리는 다음 링크에서 확인가능하다.
https://en.wikipedia.org/wiki/JQuery
직접 구성해 본다.
다음 링크에서 HTML 페이지에 import 가능한 jquery CDN 경로를 얻어올 수 있다.
https://releases.jquery.com/jquery/
- 검증할 HTML 페이지 작성
- 로컬 서버로 구동
- 테스트
어떤 페이로드로 Dom-XSS가 일어나는 보고 싶을 때 참고
- https://jsfiddle.net/TwBaS/
- https://stackoverflow.com/questions/11169894/can-malicious-javascript-code-be-injected-through
참고
jquery 를 사용하는 경우, 유저로부터의 입력이 다음 함수들로 전달되면 위험하다고 판단할 수 있다.
add()
after()
append()
animate()
insertAfter()
insertBefore()
before()
html()
prepend()
replaceAll()
replaceWith()
wrap()
wrapInner()
wrapAll()
has()
constructor()
init()
index()
jQuery.parseHTML()
$.parseHTML()
- https://portswigger.net/web-security/cross-site-scripting/dom-based