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

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

缺陷编号:wooyun-2014-075927

漏洞标题:cmseasy 管理员身份 后台缓存配置文件,没有过滤一个字符导致getshell(3)

相关厂商:cmseasy

漏洞作者: menmen519

提交时间:2014-09-15 16:53

修复时间:2014-12-14 16:54

公开时间:2014-12-14 16:54

漏洞类型:设计缺陷/逻辑错误

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-15: 细节已通知厂商并且等待厂商处理中
2014-09-16: 厂商已经确认,细节仅向厂商公开
2014-09-19: 细节向第三方安全合作伙伴开放
2014-11-10: 细节向核心白帽子及相关领域专家公开
2014-11-20: 细节向普通白帽子公开
2014-11-30: 细节向实习白帽子公开
2014-12-14: 细节向公众公开

简要描述:

cmseasy 管理员身份 后台缓存配置文件,没有过滤一个字符导致getshell(3) 哥就是要找完所有后台shell,让你们后台无处可找,呵呵..........

详细说明:

直接看代码:
union_admin.php:(lines:123-138):

if (front::post('submit') &&$this->manage->vaild()) {
$this->manage->filter($this->Exc);
$this->manage->add_before($this);
$this->manage->save_before();
$path = ROOT.'/config/union.php';
$content = file_get_contents($path);
foreach(front::$post['setting'] as $key=>$val) {
$content = preg_replace("/'$key'=>'(.*?)',/is","'$key'=>'$val',", $content);
//preg_match_all("/'".$key."'=>'(.*?)',/isu",$content,$out);
//var_dump($out);
//$content = str_replace_once($out[1][0],$val,$content);
}
//exit;
file_put_contents(ROOT.'/config/union.tmp.php',$content);
if($_GET['site']!='default') {


提交过来的数据通过这一句
$content = preg_replace("/'$key'=>'(.*?)',/is","'$key'=>'$val',", $content);
\' 被转换成为了\\'所以问题就出现了
我们到后台 如图所示:

38.png


我们在看看缓存文件是否生成

39.png


40.png


ok 到这里就演示完毕了

漏洞证明:

修复方案:

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2014-09-16 08:23

厂商回复:

感谢

最新状态:

暂无