漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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的绕过:
首先直接上传一个webshell,没有任意修改下肯定被拦截
然后修改webshell内容为1111,还是被拦截,发现这不是重点,重点是文件名为1.php这被检测到了
然后我们对文件名fuzz,发现如果split “.”这个字符如果出现php也会被拦截,例如:1.xxx.php.aaax.da
这次我们上传1.php5发现传上去了,当然这种方法绕过了检测,但并不是所有情况都会解析php5为php脚本
下面一种情况:
因为我们上面发现如果.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
也可以直接上传一个shell,使用$DATA流,上传1.php::$DATA,但是发现被拦截了
然后去掉了两边的双引号,发现成功绕过安全狗传上去了
但是直接访问3.php被拦截,如果传上去不能访问也多打意义对吧
在我多次测试后发现,被拦截的都是安全狗webshell查杀功能能查杀的文件,如果我们换成webshell查不出来的呢?那不就bypass了?
换个过狗的一句话传上去
成功绕过!!
如果小伙伴们最后测试用菜刀无法连接,但是可以手工访问,那就中转一下,在数据加密的情况下,是无法检测出来的!
所以我们现在可以绕过所有的防御了:
webshell上传 -> webshell访问 ->webshell执行
下面第二种绕过,完全适用于任何系统:
通过上面的测试,猜到你们都是用了正则来检测
然后测试Content-Disposition: form-data; name="userfile"; filename=4.php;
注意4.php;后面有个分号
shell成功传上去了,asp,jsp也不例外
第三种方法,程序与服务器之间的差异:
Content-Disposition: form-data111111; name="userfile"; filename=5.php
form-data这是可以任意插入,服务器容错下是可以上传的,但是安全狗没做这样的容错,所以在使用正则的时候一定要注意这样的情况
最后不为别的,只希望你们越做越好,提升国内安全水平!
漏洞证明:
修复方案:
xxx
版权声明:转载请注明来源 izy@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:9
确认时间:2016-01-21 11:09
厂商回复:
这句话说的很好,最后不为别的,只希望你们越做越好,提升国内安全水平!我们也是这么希望的,非常感谢白帽子!
最新状态:
暂无