简要描述
一处逻辑漏洞导致备份文件名可猜测,影响phpcmsv9所有版本。
一、漏洞原理
我们知道windows的FindFirstFile(API)有个特性就是可以把<<当成通配符来用而PHP的opendir(win32readdir.c)就使用了该API。PHP的文件操作函数均调用了opendir,所以file_exists也有此特性。
二、漏洞形成
程序文件apicreatimg.php里的$fontfile变量可控随后便进入file_exists函数判断。当文件存在和不存在时所返回的页面是不一样的。所以完全可以利用这个点来把长达30多位随机字母名称的备份文件推算出来(备份文件在web目)
三、PHPCMS V9 猜备份文件 漏洞POC
为保证文件完整性,可用性,已上传云盘。