代码审计
由于出现 了CMS可以从网上进行查找,是否有源码包进行审计,对代码进行审计
依据刚才的过程而言
(1) 在e/admin/ebak/phome.php文件中接受备份数据库传递的参数
(2) 接受参数后,传递到\upload\e\admin\ebak\class\functions.php文件中的EbakDOEbak函数中。EbakDOEbak函数接受参数后,将数据库表名传递给变量$tablename
(3) 系统对表名遍历将其赋值给b t a b l e 和 btable和btable和dtable。在d t a b l e 处 将 表 名 拼 接 为 字 符 串 。 对 拼 接 而 成 d_table处将表名拼接为字符串。对拼接而成dtable处将表名拼接为字符串。对拼接而成tb数组未对其中的键值名添加双引号
(4)在生成config.php文件的过程中,对于$d_table没有进行处理,直接拼接到生成文件的字符串中,导致任意代码执行漏洞
(5)config.php
/e/admin/ebak/bdata/empirecms_20201121173210WkHDU5/config.php
备份文件,生成新的文件由readme.txt为config.php
文件上传在系统-管理数据表位置存在文件上传的地方