一 .PHPCMS V9本地文件包含漏洞
漏洞出现在如下文件:phpcms/modules/search/index.php
代码如下:
本处大家会发现在使用file_get_contents函数时没有过滤get方式得到的m参数
因此可以构造payload如下
www.xxx.com/m=search&a=public_get_suggest_keyword&q=../../phpsso_server/caches/configs/database.php
如果存在漏洞即可成功读取到phpcms的数据库配置文件,如图
二. phpcms V9 sql备份文件名爆破
参考文章:phpcms V9 sql备份文件名爆破
payload:/api.php?op=creatimg&txt=mochazz&font=/../../../../caches/bakup/default/gv5dmx<<.sql
我们知道windows的FindFirstFile(API)有个特性就是可以把<<当成通配符来用
而PHP的opendir(win32readdir.c)就使用了该API。PHP的文件操作函数均调用了opendir,所以file_exists也有此特性。
这个漏洞和前一阵子dedecms后台爆破如出一辙,api.php文件的$op变量决定用户的操作
在/api/creatimg.php文件中,使用了file_exists()函数判断 f o n t f i l e 文 件 是 否 存 在 , 文 件 存 在 和 不 存 在 的 返 回 信 息 是 不 同 的 , 而 且 fontfile文件是否存在,文件存在和不存在的返回信息是不同的,而且 fontfile文