一处有趣的php文件写入导致的getshell
在审计一个名为熊海CMS的时候,发现了一处比较有趣的文件写入导致的getshell,所以记录一下分享出来。虽然利用条件有些鸡肋,但在遇到CMS安装页未删除并且可以重复安装的情况下倒是一个getshell的思路。
关键代码如下:
include '../inc/db.class.php'; |
在安装时,会将数据库名,用户,密码等写入db.class.php
文件,那就可以构造数据库名来getshell了。
我们可将数据库的名称改为:';phpinfo();//
(经测试,mysql的数据名是可以有任意字符的)这样在安装时写入到db.calss.php
的文件就变成了如下的样子:
这样直接访问安装后的CMS首页就可以执行写入的php代码了,因为不管哪个页面都引用了db.class.php
这个配置文件。
如果是黑盒测试的话就需要不断尝试数据库名的payload,因为不同CMS写入配置文件时的格式不同。
评论
评论插件加载失败
正在加载评论插件