当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(16) 关注此漏洞

缺陷编号: WooYun-2014-69746

漏洞标题: qibocms V7 整站系统最新版SQL注入一枚 & 另外一处能引入转义符的地方。

相关厂商: 齐博CMS

漏洞作者: ′雨。认证白帽子

提交时间: 2014-07-27 23:50

公开时间: 2014-10-25 23:52

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: 无

1人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-07-27: 细节已通知厂商并且等待厂商处理中
2014-07-28: 厂商已经确认,细节仅向厂商公开
2014-07-31: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-09-21: 细节向核心白帽子及相关领域专家公开
2014-10-01: 细节向普通白帽子公开
2014-10-11: 细节向实习白帽子公开
2014-10-25: 细节向公众公开

简要描述:

好久没看过qibo的了。
高三累成狗, 补课生活终于快要结束了。

详细说明:

首先来看一下全局文件

code 区域
$_POST=Add_S($_POST);
$_GET=Add_S($_GET);
$_COOKIE=Add_S($_COOKIE);





code 区域
function Add_S($array){
foreach($array as $key=>$value){
if(!is_array($value)){
$value=str_replace("&#x","& # x",$value); //过滤一些不安全字符
$value=preg_replace("/eval/i","eva l",$value); //过滤不安全函数
!get_magic_quotes_gpc() && $value=addslashes($value);
$array[$key]=$value;
}else{
$array[$key]=Add_S($array[$key]);
}
}
return $array;





看这函数对数组中的value进行了addslashes 没有对数组中的key进行addslashes。





在member/post.php中

code 区域
if($lfjid)
{
if($web_admin||$lfjuid==$rsdb[uid]){
$atc_power=1;
}
}



这里判断了一下权限 如果是管理员的话就让这变量为1 当然我们是注册不到管理员的

看后面的 如果你的id 是和这个发布文章的id是一样的 那么这个变量也会成1

也是有权限的 所以。。

code 区域
elseif($job=='manage')
{
if(!$atc_power)showerr("你没权限");
if($rsdb[pages]<2){
header("location:post.php?job=edit&aid=$aid&mid=$mid&only=$only");exit;
}
$erp=get_id_table($aid);
if($step==2){
asort($orderDB);
$i=0;
foreach( $orderDB AS $key=>$value){
$i++;
$db->query("UPDATE {$pre}reply$erp SET orderid=$i WHERE aid='$aid' AND rid='$key'");
}





这里$orderDB 结合 qibo的伪全局可以直接控制

然后把数组中的key直接带入到了查询当中 结合上面说的 数组中的key不会被转义

所以造成了注入。



__________________________________________________________________



0x02 能引入转义符的地方。

/inc/artic_function.php中



code 区域
/*修改软件*/

function post_edit(){
global $db,$_pre,$postdb,$fid,$fidDB,$Fid_db,$lfjuid,$rsdb,$lfjdb,$webdb,$timestamp,$aid,$FROMURL,$groupdb,$web_admin,$fu_fiddb;

if( $rsdb[levels]&&$postdb[levels] )
{
$postdb[levels]=$rsdb[levels]; //处理其他级别2,3,4...以防出错
}
if($postdb[top])



省略一点

code 区域
if($rsdb[keywords]!=$postdb[keywords]){
keyword_del($aid,$rsdb[keywords]);
keyword_add($aid,$postdb[keywords],$lfjdb[uid]);
}





code 区域
function keyword_del($aid,$keyword){
global $db,$_pre;
if(!$keyword){
return ;
}
$detail2=explode(" ",$keyword);
foreach( $detail2 AS $key=>$value){
if($value){
$db->query("UPDATE `{$_pre}keyword` SET num=num-1 WHERE `keywords`='$value'");
$_rs=$db->get_one("SELECT * FROM `{$_pre}keyword` WHERE `keywords`='$value'");
$id=$_rs[id];
$db->query("DELETE FROM `{$_pre}keywordid` WHERE `id`='$id' AND aid='$aid'");
}
}
}





keyword_del($aid,$rsdb[keywords]);



这里进入查询的时候是用的是出库来的 所以能引入转义符。



漏洞证明:

首先注册一个会员

20.jpg





然后选择一个栏目投稿。



21.jpg





发布成功后 因为这里判断了



code 区域
if($rsdb[pages]<2){
header("location:post.php?job=edit&aid=$aid&mid=$mid&only=$only");exit;



就是说页数不能只有一页 所以我们得点 [续发本主题] 再增加一页。



22.jpg





两页了。



然后这里可以直接看到id为668.



23.jpg





修改key为注入语句 成功注入。



_________________________________________________________________________





0x02 引入转义符



首先注册一个会员 然后发布一个文章 这样写

60.jpg





关键字这样写 发完后 然后编辑一下



61.jpg



引入了转义符 成功报错了。



修复方案:

转义一下。



code 区域
foreach( $orderDB AS $key=>$value){
$i++;
$key=addslashes($key);
$db->query("UPDATE {$pre}reply$erp SET orderid=$i WHERE aid='$aid' AND rid='$key'");
}









第二个



$keyword=addslashes($keyword);

版权声明:转载请注明来源 ′雨。@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-07-28 14:15

厂商回复:

感谢提出来

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2014-07-28 00:02 | ′ 雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    1

    更新了一下 管理帮我更新下把 @疯狗 @Finger @xsser

  2. 2014-07-28 01:16 | Mosuan ( 普通白帽子 | Rank:449 漏洞数:175 | 尘封此号,不装逼了,再见孩子们。by Mosua...)
    0

    @′ 雨。 我的漏洞为啥都不审核..........

  3. 2014-07-28 10:31 | ′ 雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    0

    求给更新下

  4. 2014-07-28 11:23 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)
    0

    @′ 雨。 更新

  5. 2014-07-28 11:26 | ′ 雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    0

    @疯狗 狗哥 谢啦

  6. 2014-08-01 09:59 | C4ndy ( 路人 | Rank:6 漏洞数:1 )
    0

    Mark

登录后才能发表评论,请先 登录