关于影响PHP的新关键安全漏洞的细节已经浮出水面,在某些情况下,该漏洞可用于实现远程代码执行。 该漏洞被跟踪为 CVE-2024-4577,被描述为影响 Windows 操作系统上安装的所有 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平台的语言环境
漏洞情境情境一情境一:将 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 目录下也受此弱点影响,常见情况包含但不限于: ScriptAlias /php-cgi/ "C:/xampp/php/"
修补建议RewriteEngine On RewriteCond %{QUERY_STRING} ^%ad [NC] RewriteRule .? - [F,L]
漏洞复现[color=rgba(0, 0, 0, 0.9)] [color=rgba(0, 0, 0, 0.9)]
根据 DEVCORE 安全研究人员的说法,该缺陷使得绕过针对另一个安全漏洞 CVE-2012-1823 的保护成为可能。 “在实施PHP时,该团队没有注意到Windows操作系统中编码转换的最佳拟合功能,”安全研究员Orange Tsai说。 “这种疏忽允许未经身份验证的攻击者通过特定字符序列绕过先前对CVE-2012-1823的保护。通过参数注入攻击,可以在远程PHP服务器上执行任意代码。 在 2024 年 5 月 7 日负责任地披露后,PHP 版本 8.3.8、8.2.20 和 8.1.29 中提供了漏洞修复程序。 DEVCORE 警告说,默认情况下,当配置为使用繁体中文、简体中文或日语的区域设置时,Windows 上的所有 XAMPP 安装都容易受到攻击。 这家台湾公司还建议管理员完全放弃过时的 PHP CGI,并选择更安全的解决方案,例如 Mod-PHP、FastCGI 或 PHP-FPM。 “这个漏洞非常简单,但这也是它有趣的地方,”蔡说。“谁会想到,一个在过去 12 年中经过审查并证明是安全的补丁,会因为 Windows 的一个小功能而被绕过?” Shadowserver 基金会在 X 上分享的一篇文章中表示,它已经在公开披露后的 24 小时内检测到涉及针对其蜜罐服务器的漏洞的利用尝试。 watchTowr Labs 表示,它能够设计出针对 CVE-2024-4577 的漏洞并实现远程代码执行,因此用户必须迅速采取行动应用最新补丁。 “一个非常简单的漏洞,”安全研究员Aliz Hammond说。 “敦促那些在受影响的区域设置之一(简体中文(简体或繁体)或日语)下以受影响的配置运行的人尽可能快地执行此操作,因为由于漏洞利用的复杂性较低,该漏洞很有可能被大规模利用。” 更新#攻击面管理公司 Censys 表示,截至 2024 年 6 月 9 日,它发现了大约 458,800 个潜在易受攻击的 PHP 实例暴露,其中大部分位于美国和德国。但它也指出,这个数字可能是“高估了这个漏洞的真正影响”,因为它无法检测到何时启用了CGI模式。 根据 Wiz 分享的估计,34% 的云环境具有运行易受攻击的 PHP 版本的 Windows 资源。 Imperva 警告说,TellYouThePass 勒索软件行为者积极利用 PHP 漏洞,通过 HTML 应用程序 (“dd3.hta”) 有效负载提供文件加密恶意软件的 .NET 变体。 该公司指出:“最初的感染是使用HTA文件(dd3.hta)进行的,该文件包含恶意VBScript。“VBScript 包含一个长 base64 编码的字符串,解码时会显示二进制文件的字节,这些字节在运行时加载到内存中。”
漏洞描述网址:【CVE-2024-4577】PHP CGI 远程代码执行漏洞 - 极核GetShell (get-shell.com)
|