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


    帝国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中 short_open_tag = On,重启phpstudy

      

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

    四、漏洞复现

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

      

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

      

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

      

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

      

    5、访问后台

      

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

      

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

      

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

      

    9.查看备份的文件

      

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

      

    11、这时查看config.php文件

      

      

  • 相关阅读:
    Linux下安装SVN服务端小白教程
    在 Linux 下搭建 Git 服务器
    Linux系统中安装软件的几种方式
    springboot系列(十)springboot整合shiro实现登录认证
    shiro系列五、shiro密码MD5加密
    springboot系列(九)springboot使用druid数据源
    springboot系列(七) 项目热加载
    访问网页出现DNS错误
    SpringBoot入门
    MyBatisCodeHelper-Pro插件破解版[2.8.2] 【拒绝度盘】
  • 原文地址:https://www.cnblogs.com/yuzly/p/11369770.html
Copyright © 2020-2023  润新知