EmpireCMS(帝国CMS) 最新版(v7.5)已知漏洞汇总

EmpireCMS(帝国CMS) 最新版(v7.5)一处后台getshell, 比较鸡肋,还是需要弄到管理员权限,登陆到后台 , 首先,需要进入你的后台……你后台密码不是admin等简单字符串

近期很多帝国程序被非法篡改,我这里总结了一些信息给大家参考,建议尽快检查网站是否有以下几处漏洞未处理。KjjECMSPLUS
 

已知漏洞

EmpireCMS前台XSS漏洞KjjECMSPLUS
EmpireCMS安装处任意文件读取KjjECMSPLUS
EmpireCMS最新版(v7.5)一处后台getshellKjjECMSPLUS
EmpireCMS后台任意代码执行

安全检查

后台密码 (需要足够复杂,并使用安全认证码,修改登陆入口)KjjECMSPLUS
密码重置插件 (如果之前使用过,建议检查是否删除)KjjECMSPLUS
安装文件(一定要删除)KjjECMSPLUS
后台备份数据库 (建议删除相关文件)KjjECMSPLUS
首页模板方案 (建议删除相关文件)KjjECMSPLUS
KjjECMSPLUS
导入系统模型 (建议删除相关文件)KjjECMSPLUS
留言 (建议删除相关文件或者禁用)KjjECMSPLUS
会员功能和会员空间(如无必要删除或者禁用)KjjECMSPLUS
 KjjECMSPLUS

KjjECMSPLUS
EmpireCMS(帝国cms) 最新版(v7.5)一处后台getshell, 比较鸡肋,还是需要弄到管理员权限,登陆到后台 , 首先,需要进入你的后台……你后台密码不是admin等简单字符串可以忽略 .KjjECMSPLUS
使用帝国cms重置密码插件未删除,后台密码过于简单会造成程序非常大的隐患。KjjECMSPLUS
KjjECMSPLUS
可被利用的部分使用场景:

后台备份数据库

开启抓包代理,使用Burp抓包,再点击开始备份KjjECMSPLUS
KjjECMSPLUS
把参数tablename的值改为phpifno()KjjECMSPLUS
KjjECMSPLUS
关闭抓包,php的版本参数直接就出来了KjjECMSPLUS
KjjECMSPLUS
查看备份说明再将地址栏的redame.txt改为config.phpKjjECMSPLUS
查看目录文件upload\e\admin\ebak\phome.php,备份数据库的参数KjjECMSPLUS
第72行,接收备份数据库传递的参数,然后传递给Ebak_DoEbak函数中。KjjECMSPLUS
然后传递到upload\e\admin\ebak\class\functions.php文件中的EbakDOEbak函数中。EbakDOEbak函数接受参数后,将数据库表名传递给变量$tablename。KjjECMSPLUS
继续浏览代码,可以看到,遍历表名并赋值给btable、b_table、bt​able、d_table,使用RepPostVar函数对表名进行处理,其中dtable拼接成d_table拼接成dt​able拼接成tb数组时没有对键值名添加双引号。KjjECMSPLUS
在生成config.php文件的过程中,对于$d_table没有进行处理,直接拼接到生成文件的字符串中,导致任意代码执行漏洞。KjjECMSPLUS

导入系统模型

生成一个1.php.mod文件,内容为,记得为php代码

file_put_contents("p0desta.php","<?php phpinfo(); ?>");

访问 /e/admin/shell.php

1)e\admin\ecmsmod.php导入模型

2)跟随LoadInMod函数来到\class\moddofun.php

3)上传之后下面用include进行包含一次,既执行一次上传php代码。php代码钟写入一个新shell。既在e/admin/目录下生成一个shell.php

一、漏洞描述

该漏洞是由于安装程序时没有对用户的输入做严格过滤,导致用户输入的可控参数被写入配置文件,造成任意代码执行漏洞。

二、漏洞复现

1、漏洞出现位置如下图,phome_表前缀没有被严格过滤导致攻击者构造恶意的代码

2、定位漏洞出现的位置,发现在/e/install/index.php,下图可以看到表名前缀phome_,将获取表名前缀交给了mydbtbpre参数。

3、全文搜索,$mydbtbpre,然后跟进参数传递,发现将用户前端输入的表前缀替换掉后带入了sql语句进行表的创建,期间并没有对前端传入的数据做严格的过滤

4、创建表的同时将配置数据和可以由用户控制的表前缀一起写入到config.php配置文件

5、通过对整个install过程的代码分析,可以发现没有对用户数据进行过滤,导致配置文件代码写入。

5.1、burp对漏洞存在页面进行抓包,修改phome参数的值,构造payload,payload如下:

‘;phpinfo();//

5.2、在burp中的phome参数的值中输入特殊构造的payload

6、查看config.php配置文件,发现成功写入配置文件

7、再次访问安装结束的页面, /e/install/index.php?enews=moddata&f=4&ok=1&defaultdata=1

8、构造特殊的payload getshell

9、菜刀连接,成功getshell



 

分享到 :
相关推荐

发表评论

登录... 后才能评论

评论(3)

加入本站VIP会员订阅计划,海量资源免费下载查看

目前为止共有3位优秀的VIP会员加入!

立即加入VIP会员