公共服务

安全公告
关于phpStudy nginx解析漏洞的安全公告
时间   2020年09月11日 09:09
作者    责任编辑   lgc

一、情况分析

漏洞背景

phpStudy是一个PHP调试环境的程序集成包,兼容Windows和Linux系统,支持Web端管理,可以一键创建网站、FTP、数据库等,实现了文件管理,PHP多版本共存及切换等功能。近日,监测到网络上出现了phpStudy Windows版本存在nginx解析漏洞,并进行了复现和分析。

漏洞原理

该漏洞属于nginx中间件的解析漏洞,phpStudy使用了较低的nginx版本,导致存在该漏洞。

① 由于nginx.conf中存在如下默认配置,使得nginx在解析后缀为.php的文件时,会转交给fastcgi处理。

② 配置文件php.ini中存在参数cgi.fix_pathinfo,默认值为1,主要用于修复路径,若当前路径不存在则会解析上层路径的文件。因此如果构造访问地址为http://ip/path/1.jpg/x.php(其中1.jpg是上传的包含php代码的图片文件,x.php可以是服务器中任意一个不存在的php文件),则会导致fastcgi处理的文件就变成/1.jpg。

③ 同时,配置文件php-fpm.conf中的security.limit_extensions参数值为空,没有限制fastcgi的解析类型,即任意后缀名的文件都会当成php文件进行解析执行。

漏洞复现

针对该漏洞的利用方式已公开,请受影响的用户及时处理,漏洞利用成功的截图如下:

二、影响范围

phpStudy <= 8.1.0.7 for Windows

三、处置建议

目前官方尚未发布该漏洞修复补丁,请采用如下临时缓解方案:

在php.ini中设置cgi.fix_pathinfo参数值为0,并启用该选项。