PHP CMS 代码审计实战,RCE, SQL注入,任意文件删除,任意文件上传。
点个赞!现在开始
日常打开fofa, 确认目标后,右键检查页面源代码。没有版权信息无法确认是哪个cms. 确定特征值后再fofa(这样找到源码的记录会大大提升) ,翻来翻去, 找到了疑似官方演示站点。
进行子域名收集, 收集到三个子域名
先翻一翻. 在开源信息页面找到了项目提供的源码地址。
V1重复安装覆写配置文件导致RCE
该cms用了低版本的 mysql_connect
语法. 我这里的PHP用了 5.4.45
, 搭建好后不会自动跳转到安装页面. 只能手动跳转 /install/
。
正常安装一遍后, 我刷新页面. 再次进入了安装选项页面,可以再安装一次. 开始分析源码。
看源码是有安装检测的. 但这个文件我却没找到, 目录中根本没有 source
文件夹。
获取到参数时,只是简单删除前后空字符. 没有验证消毒等操作(往后也没有)。
整个配置文件内容定义在 $config_contents
变量中( <?php return array(); ?>
), 参数也只是普通的字符串拼接起来, 参数可控,如果能逃逸就rce了。