漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-070079
漏洞标题:qibocms多个系统因为补丁而造成的注入
相关厂商:齐博CMS
漏洞作者: ′雨。
提交时间:2014-07-29 14:00
修复时间:2014-10-27 14:02
公开时间:2014-10-27 14:02
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-07-29: 细节已通知厂商并且等待厂商处理中
2014-07-29: 厂商已经确认,细节仅向厂商公开
2014-08-01: 细节向第三方安全合作伙伴开放
2014-09-22: 细节向核心白帽子及相关领域专家公开
2014-10-02: 细节向普通白帽子公开
2014-10-12: 细节向实习白帽子公开
2014-10-27: 细节向公众公开
简要描述:
看了看qibo发的补丁, 对我之前发的那个洞发了补丁
之前以为只是补丁没打好 还能绕过。
之前以为只要把之前那一处补补就好了。
可是自从出了这补丁之后 倒导致了很多其他的注入。。
这补丁 。。。。。。。。。。。。。。。。
依旧qibo的大部分的系统都有这个。
就演示一个系统。
详细说明:
http://bbs.qibosoft.com/read-forum-tid-422299-fpage-0-page-1.htm
这里补丁地址
(最后更新于2014-7-28)
附件: 安全补丁.rar (218 K) 下载次数:15597
刚更新的,对我之前发的那个洞有了防御。
来看看怎么修改的。
________________________________________________________________
在inc/common.inc.php中
可以看到 这个补丁其实就是在全局的过滤函数中多了一句
$key=str_replace(array("'",'"','\\','&'),'',$key);
看起来好像没问题的样子。 但是实际呢?
这一句代码 不仅不能把 WooYun: qibocms V7 整站系统最新版SQL注入一枚 & 另外一处能引入转义符的地方。 这一处的洞补好
而且还导致了其他的注入漏洞。。。
我们来测试一下qibo的这个过滤函数。
依旧用这来看看。
array(2) { ["asd'"]=> string(4) "asd'" ["asd"]=> string(5) "asd\'" }
可以看到提交了一个 而数组中有了两个元素
这点我并没有太清楚 问了一下P神说是 因为提交key为asd'
然后被$key=str_replace(array("'",'"','\\','&'),'',$key);后
然后单引号被清空后 就成了asd
第一次循环的时候并没有asd 就创建了一个这个元素 然后数组里面就有了两个元素。
但是原来的那个还在
就有了array(2) { ["asd'"]=> string(4) "asd'" ["asd"]=> string(5) "asd\'" }
其实我还是没太理解, 但是测试就是这样。
- - 数组中的一个key中含单引号 value中含单引号。 另外一个没有。
这里之前注入就是靠的数组里面的key没过滤 能引入单引号 然后来注入
然后出了这个补丁 连数组中的value都能引入单引号了。 导致了新的注入。。
然后找个foreach 数组的 再把value带入到查询中的就能注入了。
value的点可比key的点多一些了。
我随便找几个点来。
1: vote/vote.php中
这里是把value带入到了查询 没出这个补丁之前 这里是没办法注入的 因为value是会被转义的。
"多亏"了这个补丁 导致了这里的注入。
这里我输出一下数据
这里由于我们需要数组中有两个元素 所以数组中的key是需要含一个单引号才行
这样key中的单引号被清空后又创建了另外一个元素 就有两个元素了。
成功出数据。
类似的点还有 member/comment.php中
不多说了啊。
漏洞证明:
修复方案:
认真过滤。
版权声明:转载请注明来源 ′雨。@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-07-29 15:50
厂商回复:
感谢提出来
最新状态:
暂无