行业文库
行业文库

INDUSTRY NEWS

首页 > 行业文库 > 正文
帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
发布时间:2020-04-27 20:37:07

一、漏洞描述

EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行。

二、影响版本

EmpireCMS<=7.5

三、环境搭建

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

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

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

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

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

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

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

四、漏洞复现

1、查看代码e/admin/ebak/phome.php接收备份数据库传递的参数,然后传递给Ebak_DoEbak函数中。

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

2、跟进Ebak_DoEbak函数所在的位置,可以看到将数据库表名传递给变量$tablename。

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

3、继续浏览代码,可以看到如下代码,遍历表名并赋值给$b_table、$d_table,使用RepPostVar函数对表名进行处理,其中$d_table拼接成$tb数组时没有对键值名添加双引号。

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

4、在生成config.php文件的过程中,对于$d_table没有进行处理,直接拼接到生成文件的字符串中,导致任意代码执行漏洞。

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

5、访问后台

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

6、按下图依次点击,要备份的数据表选一个就好

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

7、点击”开始备份”,burp抓包,修改tablename参数的值

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

8、可以看到响应的数据包,成功备份

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

9.查看备份的文件

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

10.访问备份目录下的config.php,可以看到成功执行phpinfo

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法

11、这时查看config.php文件

  帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法


五、漏洞修复解决方法
修复方法一、在生成config.php文件时/e/admin/ebak/class/functions.php对表名处增加双引号 即可
修复方法二、删除文件夹/e/admin/ebak/

分享到:

相关文章
关于深网

“赣州深网www.gzsw.net.cn”是赣州深网科技有限公司所拥有的互联网服务品牌。公司主要致力于向广大用户提供优质的互联网基础服务。公司拥有一支由资深技术专家、优秀的管理、服务人才组成的运营团队,有着多年的互联网运营服务从业经验。公司先后与国内多家知名互联服务企业合作,取得了瞩目的成绩,资源、技术优势得到进一步提升。深网为企业、政府、组织提供网站开发设计、域名注册、网站主机、网站SEO优化、微站、公众号平台、小程序开发等。 联系电话:137-6633-3304

案例分享
立即咨询