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

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

缺陷编号:wooyun-2014-089426

漏洞标题:可能是一种通杀的waf bypass方式(安全狗实例)

相关厂商:安全狗

漏洞作者: MayIKissYou

提交时间:2014-12-31 10:52

修复时间:2015-01-05 10:54

公开时间:2015-01-05 10:54

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

危害等级:高

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-12-31: 细节已通知厂商并且等待厂商处理中
2015-01-05: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

由于某些字符处理不好,可能导致所有的waf bypass。

详细说明:

ps.这种类型厂商不知道提给谁,提给wooyun不被X吧
1:一般所有的waf在做sql防注入的时候都会对sql注入的union注入方式防的死死的,大致模型是这样的:

select id from table where x = 1 union select 1,2 from dual


各家对于此处的防范各有不同,但是防范的都很好。
2:在mysql里面有一个空白符为%a0,此符号为空白符。
3:但是%a0是扩展字符里面的,当%a0+另外一个字符,可能会在web层面解析的时候出现意想不到的结果。
4:手上有安全狗,拿安全狗测试了,首先关闭安全狗的服务,我们在url中输入以下url:

http://192.168.4.70/low.php?id=11' union%a0select version(),database() %23&Submit=a


首先我的id是一个字符类型注入的参数,此时我们去看下页面返回的结果

1111.png


发现结果中出现了乱码,感觉我的%a0和s一起被解析成了乱码。但是在mysql层面去执行的时候%0a又被当做空白符执行了,显示出来了我的mysql的版本和数据库名称,感觉碉堡了。
5:这样一来解析出来的结果岂不是bypass掉了无论是waf也好,还是应用程序本身的正则也好。
6:我们开启安全狗试试,先输入%0a查看安全是不是好使的:

22222.jpg


果然拦截了
7:此时将%0a换成%0a尝试一下:

3333.jpg


可以看到安全狗没有反应,显示出来了数据库的信息,因此看来至少可以搞定狗了,这样的web解析感觉其他的waf很有可能也会有类似的问题。
ps.会不会被雷p啊

漏洞证明:

7:此时将%0a换成%0a尝试一下:

3333.jpg

修复方案:

看着修吧

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-01-05 10:54

厂商回复:

最新状态:

2015-01-21:不好意思,没有及时回复,确实有这个问题,近期会修复更新