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

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

缺陷编号:wooyun-2015-0106723

漏洞标题:大米CMS最新版注入可创建有任意余额的账户!

相关厂商:damicms.com

漏洞作者: izy

提交时间:2015-04-17 10:23

修复时间:2015-07-16 20:22

公开时间:2015-07-16 20:22

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

参数过滤不严。

详细说明:

出现问题的地方在:/Web/Lib/Action/MemberAction.class.php

function qqcreate(){
$data = array_map('strval',$_POST);
$data = array_map('remove_xss',$data);
if($data['realname']=='' || $data['qid']==''){$this->error('参数错误!');exit();}
$t = M('member')->where("username='".$data['realname']."'")->find();
if(!$t){
$data['username'] = $data['realname'];
}else{
$data['username'] = (string)time();
}
$data['userpwd'] = md5(time().rand(0,9999));
$User = D("Member"); // 实例化User对象
if ($User->create()){
$this->error($User->getError());
}else{
$uid = M('member')->add($data);
$_SESSION['dami_uid'] = $uid;
$_SESSION['dami_username'] = $data['username'];
$_SESSION['dami_usericon'] = $data['icon'];
if(!empty($_REQUEST['lasturl'])){
$this->assign('jumpUrl',urldecode(htmlspecialchars($_REQUEST['lasturl'])));
}else{
$this->assign('jumpUrl',U('Member/main'));
}
$this->success('绑定成功,正在登陆~');
}
}


我们看到这,直接save了变量data,data是一个数组,在之前没有判断字段合法性,这样就可以修改其他字段的数据了:

$uid = M('member')->add($data);


如果我们post money=999999 可以就可以得到一个有999999元的账户,此漏洞类似于 WooYun: 大米CMS v4.9 sql注入

屏幕快照 2015-04-08 下午11.18.41.png


漏洞证明:

屏幕快照 2015-04-08 下午11.18.41.png

修复方案:

unset($data['money']);//禁止修改money

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-04-17 20:20

厂商回复:

充值是有日志记录的,查下用户的充值记录发现里面的数据会不符合。但这种构造数据非法修改仍然危害巨大

最新状态:

暂无