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

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

缺陷编号:wooyun-2016-0170433

漏洞标题:完全Bypass安全狗最新版(V3.5.12048)SQL注入防护规则(可UNION)

相关厂商:安全狗

漏洞作者: 从容

提交时间:2016-01-17 12:32

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

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

漏洞类型:非授权访问/认证绕过

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

dog虐我千百回,我待dog如初恋。
Bypass安全狗最新版(V3.5.12048)SQL注入防护规则,测试不易,且行且珍惜。

详细说明:

安全狗修复速度真是凶狠啊,上一发Hackbraid表哥提交了个(V3.5.12047),我也跟风。

屏幕快照 2016-01-15 下午2.08.22.png


屏幕快照 2016-01-15 下午11.52.34.png


Bypass原理就是绕过union检测,FUZZ半天也无果,翻了翻mysql语法。

http://**.**.**.**/doc/refman/5.7/en/union.html


提到了UNION ALL:

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。
而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。


尝试了下/*!UNION ALL*//*!SELECT*/会拦截,恩......

屏幕快照 2016-01-16 上午12.14.04.png


是SELECT的问题?只有/*!UNION ALL*/的话不会拦截.....没SELECT那要UNION干啥,再测试下代替UNION ALL中间的空格/*!UNION/**/ALL*//*!SELECT*/
可以成功绕过~

漏洞证明:

测试环境:

Windows Server2008 + php + Apache + mysql


开启主动防御

屏幕快照 2016-01-16 下午4.09.29.png


屏幕快照 2016-01-16 下午5.50.38.png


/*!UNION/**/ALL*/绕过:

屏幕快照 2016-01-16 下午6.25.08.png


这时就要问了,想FROM获取更多数据怎么办?

http://**.**.**.**/bugs/wooyun-2015-0163236


修复了,但是后面使用UNION ALL拼接还是可以FROM~

1 -- ')/*!UNION/**/ALL*//*!SELECT*//*!USER*/(),/*!user*//*!FROM*/users#


屏幕快照 2016-01-16 下午6.23.03.png

修复方案:

过滤,UNION ALL适用的场景和UNION相同,再找找其他能够应用的场合。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2016-01-18 09:06

厂商回复:

安全狗也爱你,么么哒...

最新状态:

暂无