漏洞概要 关注数(12) 关注此漏洞
缺陷编号: WooYun-2014-70072
漏洞标题: qibocms多个系统绕过补丁继续注入
相关厂商: 齐博CMS
漏洞作者: ′雨。
提交时间: 2014-07-29 13:56
公开时间: 2014-10-27 13:58
漏洞类型: SQL注射漏洞
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 无
漏洞详情
披露状态:
2014-07-29: 细节已通知厂商并且等待厂商处理中
2014-07-29: 厂商已经确认,细节仅向厂商公开
2014-08-01: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-09-22: 细节向核心白帽子及相关领域专家公开
2014-10-02: 细节向普通白帽子公开
2014-10-12: 细节向实习白帽子公开
2014-10-27: 细节向公众公开
简要描述:
(最后更新于2014-7-28)
附件: 安全补丁.rar (218 K) 下载次数:15582
看到更新补丁了 再来看看。
绕过这补丁 当然 绕过了这补丁的话 也是通杀qibo多个系统。
详细说明:
之前发的 http://**.**.**.**/bugs/wooyun-2010-069746
————————————————————————————————
下载了个补丁下来看看 看了看member目录 竟然没有看到上次我发的那个post.php
我以为没做修复了呢 后来看了看全局文件 inc/common.inc.php中
依旧是全局的过滤函数
在这里 可以看到修改了这个过滤函数。
添加了一句 $key=str_replace(array("'",'"','\\','&'),'',$key);
把数组中的key 如果含有' 或者 " 或者 \ 清空成空。
那这样数组里面的key就不能像之前一样含有特殊符号了
看起来好像是没有问题了。 但是这里我们来测试一下。
这里我们调用一下qibocms这函数来测试一下
这里 我们再在key中加一个单引号 看看会是什么情况。
array(2) { ["a'"]=> string(3) "asd" ["a"]=> string(3) "asd" }
可以看到 其中一个元素有了单引号。 其中一个元素没有单引号。
为什么会有两个元素了。 其实这点我根本没搞懂啊 - -
问了问P神 大概是因为 第一次循环因为单引号被清空了 所以有了一个a元素
然后就创建了一个a元素,导致数组变成了两个元素.
然后这两个元素都在这里面了。。 一个有单引号 一个无单引号。 也就是a'和a两个元素
- - 这里我还是不太懂。
但是就是这样
array(2) { ["a'"]=> string(3) "asd" ["a"]=> string(3) "asd" }
key中还是能引入单引号。
所以导致了这补丁被绕过。
______________________________________________________________________
绕过了这个 又能通杀多个系统了。 这里我就以整站系统做个演示。
继续在member/post.php
注册一个会员 然后发布文章 因为这个
所以需要发两页。
这里我输出一下这变量 可以看到第一个没单引号 第二个有单引号
但是foreach 是循环执行的 所以第二个也能执行到。
漏洞证明:
修复方案:
这里为什么就不参考一下之前我给的修复方法呢?
我测试了一下 至少在这里是不能注入了的。
版权声明:转载请注明来源 ′雨。@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-07-29 15:42
厂商回复:
感谢提出来
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值