PHP-CGI Windows平台远程代码执行漏洞,启明星辰提供解决方案

PHP-CGI Windows平台远程代码执行漏洞,启明星辰提供解决方案

启明星辰集团 2024-06-08 09:05

PHP-CGI
是一种用于在 Web 服务器上运行 PHP 脚本的接口,通过 CGI(公共网关接口)将 PHP 解释器与 Web 服务器连接。允许Web服务器与外部程序(通常是编写在PHP语言中的脚本)进行交互。它为Web开发人员提供了一种灵活的方式来创建动态网页和Web应用程序。

漏洞详情

2024年6月7日,启明星辰
金睛安全研究团队
监控到PHP官方修复了PHP-CGI 中一个远程代码执行漏洞。

该漏洞的原因是PHP在设计时忽略Windows 中对字符转换的Best-Fit特性,当PHP运行在Window平台且使用了如下语系(简体中文936/繁体中文950/日文932等)时,攻击者可构造恶意请求绕过
CVE-2012-1823保护,从而可在无需登陆的情况下执行任意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

修复建议

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/”

并将其注释掉:

ScriptAlias /php-cgi/ “C:/xampp/php/”

3、启明星辰方案

天阗入侵检测与管理系统、天阗超融合检测探针(CSP)、天阗威胁分析一体机(TAR)、天清入侵防御系统(IPS)、天清Web应用安全网关(WAF)升级到最新版本即可有效检测或防护该漏洞造成的攻击风险。

END