【CVE-2024-4577】PHP CGI 远程代码执行漏洞

漏洞描述

PHP 语言在设计时忽略Windows 作业系统内部对字元编码转换的Best-Fit特性,导致未认证的攻击者可透过特定的字元序列绕过旧有CVE-2012-1823的保护,透过参数注入等攻击在远端PHP 服务器上执行任意代码。该漏洞在特定PHP版本和简体(繁体)中文、日语语言等语言环境下的Windows平台,可以绕过CVE-2012-1823的保护。

影响版本

  • PHP 8.3 < 8.3.8
  • PHP 8.2 < 8.2.20
  • PHP 8.1 < 8.1.29
  • Windows平台的语言环境
    • 繁体中文(字码页950)
    • 简体中文(字码页936)
    • 日文(字码页932)
    • 对于其它执行在英文、韩文、西欧语系之 Windows 操作系统,由于 PHP 使用情境广泛、暂无法完全列举并排除其利用情境,因此还是建议用户全面盘点资产、确认使用情境并更新 PHP 至最新版本确保万无一失!

漏洞情境

情境一

情境一: 将 PHP 设定于 CGI 模式下执行

在 Apache Httpd 配置文件中通过 语法将对应的 HTTP 请求交给 PHP-CGI 运行文件处理时,受此弱点影响,常见设置包含但不限于:Action

AddHandler cgi-script .php
Action cgi-script "/cgi-bin/php-cgi.exe"

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php-cgi
</FilesMatch>

Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"

情境二

情境二: 将 PHP 运行文件暴露在外 ( XAMPP 默认安装配置)

即使未配置 PHP 于 CGI 模式下执行,仅将 PHP 运行文件暴露在 CGI 目录下也受此弱点影响,常见情况包含但不限于:

  1. php.exephp-cgi.exe复制到/cgi-bin/目录中
  2. 将 PHP 安装目录通过 暴露到外,如: ScriptAlias
ScriptAlias /php-cgi/ "C:/xampp/php/"

修补建议

  • 更新到PHP官方发布的最新PHP版本
  • 如无法更新建议编写Rewrite 规则阻止攻击,注意:此份规则只作为繁体中文、简体中文及日文语系中的暂时性缓解机制,建议以更新版本进行修复
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? - [F,L]

漏洞复现

图片[1] - 【CVE-2024-4577】PHP CGI 远程代码执行漏洞 - 极核GetShell
THE END
想说的话 1  QQ & 微信交流群: 点击查看加群方式
2  本站运营不易,以真心❤️换真心💕,如果帮助到你,可以 推荐给朋友 或者 开通金贝会员 支持一下本站!
3  请不要进行任何非授权的网络攻击,如果造成任何损失均由使用者本人负责,与本站和原作者无关!
点赞80 分享
茶谈区 共61条

请登录后发表评论