帝国cms7.5后台数据库备份处存在任意代码执行漏洞

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

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

漏洞简介:

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

漏洞影响版本:

ZJOECMSPLUS
Empire CMS <= V7.5ZJOECMSPLUS
ZJOECMSPLUS
1、输入刚刚注册的账户密码登陆到后台界面:ZJOECMSPLUS
ZJOECMSPLUS
2、进入到后台以后点击系统---备份数据---拉到最下面进行数据备份ZJOECMSPLUS
ZJOECMSPLUS
3、抓取数据包,写入phpinfo()语句,结果显示正在进行备份。
4、直接回显命令执行语句
5、点击系统---管理备份目录---查看备份说明---跳转到链接:http://www.aaa.com/upload/e/admin/ebak/bdata/empirecms_20201027182301jh9T6d/readme.txtZJOECMSPLUS
ZJOECMSPLUS
/upload/e/admin/ebak/bdata/empirecms_20201027182301jh9T6d/readme.txtZJOECMSPLUS
ZJOECMSPLUS
6、将http://www.aaa.com/upload/e/admin/ebak/bdata/empirecms_20201027182301jh9T6d/readme.txt修改为http://www.aaa.com/upload/e/admin/ebak/bdata/empirecms_20201027182301jh9T6d/config.php即可实现执行语句。
7、查看config文件的内容
备注:使用phpinfo()语句即可实现语句执行,但是使用<?php @eval($_REQUEST['cmd']);?>和大马时会自动跳转到http://www.aaa.com/upload/e/admin/ebak/phome.php并且D:\phpStudy\WWW\upload\e\admin\ebak\bdata会产生对应的文件夹,但是文件夹下面不会产生config.php文件内容,以及数据库备份内容。

漏洞原理分析

ZJOECMSPLUS
1、系统在e/admin/ebak/phome.php文件中接受备份数据库传递的参数。
2、接受参数后,传递到\upload\e\admin\ebak\class\functions.php文件中的Ebak_DOEbak函数中。Ebak_DOEbak函数接受参数后,将数据库表名传递给变量$tablename。
3、系统对表名遍历将其赋值给b_table和b_table。在d_table处将表名拼接为字符串。对拼接而成tb数组未对其中的键值名添加双引号。
ZJOECMSPLUS
4、在生成config.php文件的过程中,对于$d_table没有进行处理,直接拼接到生成文件的字符串中,导致任意代码执行漏洞。ZJOECMSPLUS
 

ZJOECMSPLUS

 ZJOECMSPLUS

 ZJOECMSPLUS

 ZJOECMSPLUS

 ZJOECMSPLUS

 ZJOECMSPLUS

 ZJOECMSPLUS

 ZJOECMSPLUS

分享到 :
相关推荐

发表评论

登录... 后才能评论

评论(3)

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

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

立即加入VIP会员