bugku 管理员系统 后台代码_帝国cms远程代码执行漏洞1

点击蓝字

关注我们

帝国cms远程代码执行漏洞-1

帝国cms简介

    《帝国网站管理系统》英文译为"Empire CMS",简称"Ecms",它是基于B/S结构,且功能强大,帝国CMS-logo易用的网站管理系统。系统由帝国开发工作组独立开发,是一个经过完善设计的适用于Linux/windows/Unix等环境下高效的网站解决方案。

    这次我们将给出此系统中的两个漏洞,对漏洞原理进行分析,并将漏洞复现。

01

后台数据库备份处存在代码执行漏洞

漏洞简介:

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

漏洞影响版本:

Empire CMS <= V7.5

环境搭建

1、本次实验的漏洞环境为Empire CMSV7.5版本,在网上直接下载帝国cmsV7.5版本即可。将下载的帝国cms文件的upload目录直接粘贴到phpstudy的www目录下

2、然后启动phpstudy,访问路径http://192.168.163.139/upload/e/install/index.php,进行安装帝国cms。

0420e5e4e5209f4bfb40ee9c0d7f1032.png

PS:出现了以下字样:

您的PHP配置文件php.ini配置有问题,请按下面操作即可解决: (1)修改php.ini,将 : short_open_tag 设为 On (2)修改后重启apache/iis方能生效。

3、根据提示修改D:\phpStudy\php\php-5.4.45\php.ini文件中(修改当前使用的PHP版本的目录)的short_open_tag = Off修改为short_open_tag = On,并且重启服务,即可实现正常访问。

67a9bab4bc6e2da279c645025d69c3b1.png

4、直接点击下一步即可

856c7027c4585080ec8b2d06d5acb5f9.png

5、输入数据库的账户和密码与数据库进行连接操作,创建表格

d23c8f585505f2251a6e4009561a1953.png

6、此处需要配置后台登陆的管理员的用户名以及密码和登陆验证码等信息

25266790bd224bb6cce2a0461c112a3e.png

7、点击“进入后台控制面板”到后台登陆界面

http://192.168.163.139/upload/e/admin/index.php

cb8c56e48b6b8c68b3c8ef92af7bed03.png ffa6be00a5324f1b09e0f3b0f7aed0fa.png

漏洞复现

1、输入刚刚注册的账户密码登陆到后台界面:

ef6ef8da2289f714131bb73dfd344382.png

2、进入到后台以后点击系统---备份数据---拉到最下面进行数据备份

011b0ab3aa7eaf4aebec8c5bd45667a9.png

3、抓取数据包,写入phpinfo()语句,结果显示正在进行备份。

1cfb5c6c9c16d3dcff448c66dd627315.png

4、直接回显命令执行语句

6c8972e4c24c3b896556dceef2bb19c7.png

5、点击系统---管理备份目录---查看备份说明---跳转到链接:http://192.168.163.139/upload/e/admin/ebak/bdata/empirecms_20201027182301jh9T6d/readme.txt

5ce523f3e027f1ec9a4e5e5478348b5c.png

http://192.168.163.139/upload/e/admin/ebak/bdata/empirecms_20201027182301jh9T6d/readme.txt

17573caf0d70d93ce6173997e619a599.png

6、将http://192.168.163.139/upload/e/admin/ebak/bdata/empirecms_20201027182301jh9T6d/readme.txt修改为http://192.168.163.139/upload/e/admin/ebak/bdata/empirecms_20201027182301jh9T6d/config.php即可实现执行语句。

341d885eb13f857d30fc6bbf0134ab17.png

7、查看config文件的内容

462b17a486fde538887ba037f6bcf580.png

备注:使用phpinfo()语句即可实现语句执行,但是使用<?php @eval($_REQUEST['cmd']);?>和大马时会自动跳转到http://192.168.163.139/upload/e/admin/ebak/phome.php并且D:\phpStudy\WWW\upload\e\admin\ebak\bdata会产生对应的文件夹,但是文件夹下面不会产生config.php文件内容,以及数据库备份内容。

漏洞原理分析

1、系统在e/admin/ebak/phome.php文件中接受备份数据库传递的参数。

8de21d0a308203e0a52a56e28003a92f.png

2、接受参数后,传递到\upload\e\admin\ebak\class\functions.php文件中的Ebak_DOEbak函数中。Ebak_DOEbak函数接受参数后,将数据库表名传递给变量$tablename。

58567583aca0f47aade8f696780c8f16.png

3、系统对表名遍历将其赋值给b_table和b_table。在d_table处将表名拼接为字符串。对拼接而成tb数组未对其中的键值名添加双引号。

2d152f601ee5ed524411950ff416c140.png

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

aacd2b5084317165643cf58fac27747e.png

关于”Ecms“的后台导入系统模型处的存在代码执行漏洞,我们将在下篇文章中进行介绍。

本文作者:R

编辑排版:T

36b1593c1bfb7ad9a21253c0bf13f6fa.png

扫二维码|关注我们

知乎|龙渊实验室

新浪微博|龙渊实验室

FreeBuf|龙渊实验室LongYuanLab

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值