漏洞概要 关注数(9) 关注此漏洞
缺陷编号: WooYun-2014-65835
漏洞标题: Qibocms图片系统任意文件查看导致的多处注入(可提升自己为管理员)
相关厂商: 齐博CMS
漏洞作者: ′雨。![认证白帽子](http://wooyun.org/images/v.png)
提交时间: 2014-06-23 11:14
公开时间: 2014-09-21 11:16
漏洞类型: SQL注射漏洞
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 无
漏洞详情
披露状态:
2014-06-23: 细节已通知厂商并且等待厂商处理中
2014-06-24: 厂商已经确认,细节仅向厂商公开
2014-06-27: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-08-18: 细节向核心白帽子及相关领域专家公开
2014-08-28: 细节向普通白帽子公开
2014-09-07: 细节向实习白帽子公开
2014-09-21: 细节向公众公开
简要描述:
最大化。 还有个跟之前类似的洞 这里就不多说了。
详细说明:
http://**.**.**.**/down2.php?v=photo1.0#down
下载地址
还有类似的 就说这里了。
在photo/member/post.php中
在这里 又是包含这个文件进来。
inc/check.postarticle.php
进去看看。
在这里又调用了get_outpic这个函数 可以跟之前发的媒体版结合解析漏洞Getshell那样一样的利用。
这里我就不多说这个了、
继续往下面看 看看有神马不同的没。
这里和媒体版的那个还是有不同的
在这里$post_db 结合 qibocms的伪全局 直接 提交一下就行了。
在这里循环出来后 不能让他匹配出:// 然后继续看
if(!$postdb[picurl]){ 当这个为false的时候进入分支所以就不提交这个了。
然后把循环出来的value copy成jpg。
这里如果我们控制这个$value为配置文件 然后copy成.php.jpg后就可以直接查看配置文件了。
但是这只是一个任意文件读取。 怎么来把他最大利用呢。
继续看在member/yz.php中
elseif($action=='mobphone2')
{
if($lfjdb[mob_yz]){
showerr("请不要重复验证手机号码!");
}
if(!$yznum){
showerr("请输入验证码");
}
elseif(!$md5code){
showerr("资料有误");
}else{
unset($code,$mobphone,$uid);
list($code,$mobphone,$uid)=explode("\t",mymd5($md5code,"DE") );
if($code!=$yznum||$uid!=$lfjuid){
showerr("验证码不对");
}
}
add_user($lfjuid,$webdb[YZ_MobMoney],'手机号码审核奖分');
$db->query("UPDATE {$pre}memberdata SET mobphone='$mobphone',mob_yz='1' WHERE uid='$lfjuid'");
把$mobphone直接带入到了查询当中 而且在set位 如果可以成功引入单引号的话 那可就可以直接提升自己为管理了。
但是qibocms 对全局的GET POST COOKIE都addslashes了。
来看看这函数
是一个加密解密的函数 如果可以知道key的话 那就可以自己生成一个语句然后来注入了。
然后利用任意文件读取那洞 可以看到key的。
SO Come on.
漏洞证明:
首先利用任意文件读取。读取data/config.php
成功拿到key 然后自己写个脚本 来生成一个语句。
构造一下语句yu',groupid=3 where uid=2#
groupid 为3的话即为管理员
不知道uid的话 可以直接就构造yu' 报错后就能看到uid
然后调用函数生成一下语句。
成功update。
调用这函数的地方还有很多
——————————————————————————————————————
在inc/common.inc.php中
貌似验证通过了就直接登录后台 来看看。
$_COOKIE["adminID"]&&$detail=mymd5($_COOKIE["adminID"],'DE',$onlineip
在这里 调用了这函数 这里需要注意一下 后面还跟了第三个参数$onlineip
看看第三个参数在函数中起的作用。
加入到了这个$secret_string里面。
然后$onlineip 这个是根据xff来的 最后判断了一下是否是正确的ip
如果不正确 ip就为**.**.**.** 这里我们构造xff为一个错误的ip就行
$onlineip就为**.**.**.**了。
然后再生成一下语句。
应该可以直接登录后台 懒得弄了。
修复方案:
源头还是任意文件查看。,
版权声明:转载请注明来源 ′雨。@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2014-06-24 11:09
厂商回复:
感谢提出来!
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值