12
2018
04

XSS小记:记一次绕过知道创宇加速乐实现反射XSS的payload

测试网站XSS,时常会碰到搜索框未过滤敏感字符导致反射XSS,大致描述一下漏洞场景:

      1.搜索框的关键词被带入到 URL和页面中

      2.敏感字符(引号/尖括号)完全没有过滤,各种html标签,js事件完全不检测

这次的漏洞场景就是这样,不同的是,网站安装了知道创宇的加速乐。

看下payload其中的一个输出点,是在一个b标签内:

 图片.png

接着手动测试,大致推测了加速乐的检测规则:

     1.检测输入的关键词是否带有js事件

     2.检测输入的关键词后的js事件其‘=’号后面的字符串长度是否大于4位

     3.检测了document.cookie(但没有检测document.write)

当同时满足条件1,2或仅满足条件3时,会触发加速乐的防护机制;


因此,下面的payload的结果如下:

     1.<‘html标签’ ‘js事件’=xxx>     不触发防护

     2.<‘html标签’ ‘js事件’=xxxx>   触发防护

图片.png

而:

图片.png

大致就是这样,然后说说怎么绕过的吧,思路是 javascript伪协议 + document.write实现关键词拆分:

先找一个能配合javascript伪协议的标签,就用 iframe 吧,其src属性可以使用伪协议,大致构造一下payload如下:


"><iframe src="javascript:document.write('<scri');document.write('pt>aler');document.write('t\(document.coo');document.write('kie\)</s');document.write('cript>')

然后对这payload进行了两次URLcomponent编码,绕过了加速乐.

图片.png

待续......

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。