帝国EmpireCMS7.5最新后台漏洞审计

帝国EmpireCMS7.5最新后台漏洞审计

1概述

   最近在做审计和WAF规则的编写,在CNVD和CNNVD等漏洞平台寻找各类CMS漏洞研究编写规则时顺便抽空对国内一些小的CMS进行了审计,另外也由于代码审计接触时间不是太常,最近一段时间也跟着公司审计项目再次重新的学习代码审计知识,对于入行已久的各位审计大佬来说,自己算是新手了。对于审计也正在不断的学习和积累中。于是抽空在CNVD上选取了一个国内小型CMS进行审计,此次审计的CMS为EmpireCMS_V7.5版本。从官方下载EmpireCMS_V7.5后进行审计,审计过程中主要发现有三处漏洞(应该还有其他漏洞暂未审计):配置文件写入、后台代码执行及后台getshell,造成这几处漏洞的原因几乎是由于对输入输出参数未作过滤和验证所导致。

2前言

   帝国网站管理英文译为”EmpireCMS”,它是基于B/S结构,安全、稳定、强大、灵活的网站管理系统.帝国CMS 7.5采用了系统模型功能:用户通过此功能可直接在后台扩展与实现各种系统,如产品、房产、供求…等等系统,因此特性,帝国CMS系统又被誉为“万能建站工具”;大容量数据结构设计;高安全严谨设计;采用了模板分离功能:把内容与界面完全分离,灵活的标签+用户自定义标签,使之能实现各式各样的网站页面与风格;栏目无限级分类;前台全部静态:可承受强大的访问量;强大的信息采集功能;超强广告管理功能……

3代码审计部分

  拿到该CMS后先把握大局按照往常一样先熟悉该CMS网站基本结构、入口文件、配置文件及过滤,常见的审计方法一般是:通读全文发(针对一些小型CMS)、敏感函数回溯法以及定向功能分析法,自己平常做审计过程中这几个方法用的也比较多。在把握其大局熟悉结构后,再通过本地安装去了解该CMS的一些逻辑业务功能并结合黑盒进行审计,有时候黑盒测试会做到事半功倍。

常见的漏洞个人总结有:

1)程序初始化安装

2)站点信息泄漏

3)文件上传

4)文件管理

5)登陆认证

6)数据库备份

7)找回密码

8)验证码

若各位大佬在审计过程中还有发现其他漏洞可补充交流。

于是首先从程序初始化安装开始进行审计….,如下:

3.1配置文件写入

  开始进行审计安装程序,根据经验安装问题一般出现在配置数据输入配置时导致,常见引发问题漏洞的参数用户输入数据库名参数、可控的表前缀等可控参数,于是乎定位到代码位置install/index.php 645行附近,可以看到表名前缀phome_,并将获取表名前缀交给了mydbtbpre参数。继续往下看并跟踪参数传递。

img

   在代码位置/e/install/data/fun.php 347~379行发现,将用户前端输入的表前缀(默认phome_)替换掉默认的phome_后带入了sql语句中进行表的创建,并且可以发现过程中未作过滤。

img

创建表的同时将配置数据包含可控的表前缀一起写入到config.php配置文件,代码位置/e/install/data/fun.php 587~645行

img

img

整个install过程中并未对用户数据进行过滤,导致配置文件代码写入。

配置文件代码写入复现:

img

img

img

3.2后台任意代码执行

   漏洞代码发生在后台数据备份处代码/e/admin/ebak/ChangeTable.php 44行附近,通过审计发现执行备份时,对表名的处理程序是value=”” 通过php短标签形式直接赋值给tablename[]。

img

进行备份时未对数据库表名做验证,导致任意代码执行。

任意代码执行复现:

img

img

img

3.3后台getshell

代码位置:e\admin\ecmscom.php

img

跟踪AddUserpage跳转至代码e\class\comdofun.php页面AddUserpage函数定义94行至114行处,继续跟踪代码在116行可以看到将path变量参数传入ReUserpage函数

img

跟踪并跳转至该函数的定义如下图所示:

img

进入该函数继续跟踪DoFileMkDir至e/class/connect.php 2151行该DoFileMkDir函数,可以看到先执行了dirnamej进行了罗列当前可供选择的目录,如下图

img

然后执行了DoMkdir函数进行了创建文件操作

img

代码位置为/adm1n/ebak/class/function.php

在path传递和创建过程中并未对path进行验证和限制。

同时在进行pagetext页面内容进行写入时,也未进行过滤引发代码执行的危险函数

代码位置为:e/class/functions.php 4280行

img

img

导致用户可通过更改文件名并写入php执行代码创建自定义含恶意代码的文件名页面从而导致getshell。

复现:

img

img

img

img

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
----------------------------------------------------------------------------- 插件名称:帝国CMS-前台定时执行刷新任务插件 插件作者:帝国CMS官方 插件介绍:帝国CMS的前台定时执行刷新任务插件,以及可自动执行信息的定时上下线操作,可替代需要开着后台才会执行刷新任务。 官方网站:http://www.phome.net ---------------------------------------------------------------------------- 想到即可做到 - 帝国CMS ----------------------------------------------------------------------------- ******************** 安装插件 ******************** 1、将“upload”目录下的文件上传至帝国CMS系统目录; 2、插件安装完毕。 ******************** 卸载插件 ******************** 1、删除 /e/extend/DoTimeRepage/ 目录; 2、插件卸载完毕。 ******************** 插件使用 ******************** 1、在经常被访问到的页面(比如:首页)最底部加上如下代码即可:(两种方式选其一) (1)、JS调用方式: [removed][removed]   (2)、框架调用方式: <IFRAME frameBorder="0" width="0" height="0" marginWidth="0" marginHeight="0" id="dorepage" name="dorepage" scrolling="no" src="[!--news.url--]e/extend/DoTimeRepage/"></IFRAME> 2、生成相应页面。 (刷新任务增加:后台>“系统”>“计划任务”>“管理刷新任务”。信息定时上下线:增加信息时选项设置里可以设置定时发布。) ******************** 插件目录说明 ******************** /e/extend/DoTimeRepage/ 前台定时执行刷新任务插件目录 └index.php 执行刷新任务程序文件 ******************** 帝国CMS插件扩展教程 ******************** 以上是我们提供的插件分享,同时希望您以后也可以开发出更好的插件与大家分享。帝国CMS的发展离不开大家的支持。 帝国CMS插件扩展手册可访问:http://www.phome.net/doc/manual/extend/ [官方插件]帝国CMS-前台定时执行刷新任务插件下载 本插件适用于帝国CMS以下版本。同时也是给大家制作帝国CMS插件提供一种格式范例,期待大家制作更多的插件。 本插件适用于帝国CMS的版本如下:(支持各编码版本) EmpireCMS 7.5 EmpireCMS 7.2 EmpireCMS 7.0 EmpireCMS 6.6 本插件最后更新时间为:2018-03-21 ----------------------------------------------------------------------------- 插件名称:帝国CMS-前台定时执行刷新任务插件 插件作者:帝国CMS官方 插件介绍:帝国CMS的前台定时执行刷新任务插件,以及可自动执行信息的定时上下线操作,可替代需要开着后台才会执行刷新任务。 官方网站:http://www.phome.net ----------------------------------------------------------------------------- 想到即可做到 - 帝国CMS ----------------------------------------------------------------------------- ******************** 安装插件 ******************** 1、将“upload”目录下的文件上传至帝国CMS系统目录; 2、插件安装完毕。 ******************** 卸载插件 ******************** 1、删除 /e/extend/DoTimeRepage/ 目录; 2、插件卸载完毕。 ******************** 插件使用 ******************** 1、在经常被访问到的页面(比如:首页)最底部加上如下代码即可:(两种方式选其一) (1)、JS调用方式: [removed][removed]   (2)、框架调用方式: <IFRAME frameBorder="0" width="0" height="0" marginWidth="0" marginHeight="0" id="dorepage" name="dorepage" scrolling="no" src="[!--news.url--]e/extend/DoTimeRepage/"></IFRAME> 2、生成相应页面。 (刷新任务增加:后台>“系统”>“计划任务”>“管理刷新任务”。信息定时上下线:增加信息时选项设置里可以设置定时发布。) ******************** 插件目录说明 ******************** /e/extend/DoTimeRepage/ 前台定时执行刷新任务插件目录 └index.php 执行刷新任务程序文件 ******************** 帝国CMS插件扩展教程 ******************** 以上是我们提供的插件分享,同时希望您以后也可以开发出更好的插件与大家分享。帝国CMS的发展离不开大家的支持。 帝国CMS插件扩展手册可访问:http://www.phome.net/doc/manual/extend/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值