帝国cms7.5漏洞复现

EmpireCMS v7.5后台任意代码执行分析
目录
一.漏洞简介
二.漏洞复现
三.原理分析

一.漏洞简介
EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行。
[影响版本] <=7.5
[漏洞危害] 高
[漏洞位置] /e/admin/admin/ebak/phome.php
二.漏洞复现
1 访问靶机192.168.5.165 账户密码admin
帝国cms7.5漏洞复现_第1张图片
2依次 -> [系统]-[系统设置]-[备份与恢复数据]-[备份数据]
帝国cms7.5漏洞复现_第2张图片

3 抓包把tablename改为phpifno()
帝国cms7.5漏洞复现_第3张图片
4 访问备份文件目录下的config.php,将readme.txt改为config.php

帝国cms7.5漏洞复现_第4张图片
帝国cms7.5漏洞复现_第5张图片
三.原理分析
1)系统在e/admin/ebak/phome.php文件中接受备份数据库传递的参数。
elseif($phome==“DoEbak”)
{

Ebak_DoEbak( P O S T , _POST, POST,logininid,$loginin);

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

帝国cms7.5漏洞复现_第6张图片
3)系统对表名遍历将其赋值给 b t a b l e 和 btable和 btabledtable。在 d t a b l e 处 将 表 名 拼 接 为 字 符 串 。 对 拼 接 而 成 d_table处将表名拼接为字符串。对拼接而成 dtabletb数组未对其中的键值名添加双引号。
帝国cms7.5漏洞复现_第7张图片
4)在生成config.php文件的过程中,对于$d_table没有进行处理,直接拼接到生成文件的字符串中,导致任意代码执行漏洞。
帝国cms7.5漏洞复现_第8张图片
5)config.php
帝国cms7.5漏洞复现_第9张图片# EmpireCMS v7.5后台getshell分析

目录

一.漏洞复现

二.原理分析

一.漏洞复现

1 访问靶机192.168.5.165 账户密码admin

帝国cms7.5漏洞复现_第10张图片

2 依次进入

帝国cms7.5漏洞复现_第11张图片

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

file_put_contents("p0desta.php","");

帝国cms7.5漏洞复现_第12张图片
帝国cms7.5漏洞复现_第13张图片

4 访问 http://192.168.5.98/e/admin/shell.php

帝国cms7.5漏洞复现_第14张图片

二.原理分析

1)e\admin\ecmsmod.php导入模型
帝国cms7.5漏洞复现_第15张图片

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

帝国cms7.5漏洞复现_第16张图片

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

帝国cms7.5漏洞复现_第17张图片

你可能感兴趣的:(cve复现,代码审计)