在某些常见环境下的PHP执行环境,可以绕过其php.ini中设置的安全相关配置执行命令或者做其他操作
详细说明:
在PHP-FPM环境下的fastcgi运行的PHP中,因为PHP-FPM无法知晓我们的fastcgi请求来源于哪儿,因此我可以模仿fcgi协议向PHP-FPM发起伪造的请求。
而且PHP-FPM自从5.3.3开始,允许利用fcgi的参数PHP_VALUE, PHP_ADMIN_VALUE对php.ini的内容进行设置,因此可以利用此去覆盖原有php的安全设置。
利用结果如下:
修复方案:
实际上这个还真不太好修复,可以暂时去除PHP_VALUE的支持,但是这只是一个临时方案,看PHP官方如何处理吧。
毕竟他无法解决“PHP-FPM无法知晓我们的fastcgi请求来源于哪儿”的问题。这又是一个架构上的问题了。