在CVE-2024-4577的poc中可以看到多了一个参数选项cgi.force_redirect。因为PHP增加了一个默认开启的配置cgi.force_redirect=1,仅允许通过重定向规则的请求来执行PHP CGI,不允许直接访问执行,要绕过这一特性,可以采取以下方法: 既然已经通过-d参数成功修改了其他配置,那么同样可以直接使用-d参数将cgi.force_redirect的...
从漏洞补丁可以看出,如果检测到字符串开头为"-"字符并且字符串不存在"="字符就设置skip_getopt = 1,那么整个查询字符串将作为CGI的参数进行传递,攻击者可以向后端的php-cgi解析程序提交恶意数据,php-cgi会将恶意数据当做php参数直接执行。
由于PHP 在设计时忽略了Windows系统对字符转换的Best-Fit 特性,用CGI模式运行PHP在Windows平台,且使用了如下语系(简体中文936/繁体中文950/日文932等)时受漏洞影响,未经身份验证的攻击者可构造恶意请求绕过CVE-2012-1823补丁的保护,通过参数注入远程执行任意代码。
CVE-2012-1823就是php-cgi这个sapi出现的漏洞,上面介绍了php-cgi提供的两种运行方式:cgi和fastcgi,本漏洞只出现在以cgi模式运行的php中。 这个漏洞简单来说,就是用户请求的querystring被作为了php-cgi的参数,最终导致了一系列结果 漏洞利用 发现cgi模式下有如下一些参数可用: -c 指定php.ini文件的位置 -n 不要加...
是用户将HTTP请求参数提交至Apache服务器,通过mod_cgi模块交给php-cgi处理,从漏洞补丁可以看出,如果检测到字符串开头为"-“字符并且字符串不存在”="字符就设置skip_getopt = 1,那么整个查询字符串将作为CGI的参数进行传递,攻击者可以向后端的php-cgi解析程序提交恶意数据,php-cgi会将恶意数据当做php参数直接执行。
CVE-2024-4577是一个影响在Windows平台上运行的PHP CGI的远程代码执行漏洞。 漏洞的存在是因为PHP在设计时未能预见到Windows的Best-Fit字符编码转换特性,这使得攻击者可以通过构造特定的请求来绕过安全限制。受影响的环境包括使用特定语系设置的Windows系统,如简体中文(936)、繁体中文(950)和日文(932)。 0x01 影响范围...
在 PHP 的 8.3.8 版本之前存在命令执行漏洞,由于 Windows 的“Best-Fit Mapping” 特性,在处理查询字符串时,非ASCII字符可能被错误地映射为破折号(-),导致命令行参数解析错误,当 php_cgi 运行在Windows平台上,且代码页为繁体中文、简体中文或日文时,攻击者可以通过特定的查询字符串注入恶意参数,从而执行任意代码。
CVE-2024-4577导致漏洞产生的本质其实是Windows系统内字符编码转换的Best-Fit特性导致的,相对来说PHP在这个漏洞里更像是一个受害者。 由于Windows系统内字符编码转换的Best-Fit特性导致PHP原本的安全限制被绕过,再加上一些特殊的PHP CGI环境配置导致了这个问题,最终导致漏洞利用的算是一些PHP的小技巧。
漏洞描述 PHP 在设计时忽略 Windows 中对字符转换的Best-Fit 特性,当PHP运行在Window平台且使用了如下语系(简体中文936/繁体中文950/日文932等)时,攻击者可构造恶意请求绕过CVE-2012-1823 保护,从而可在无需登陆的情况下执行任意PHP代码。 PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)是2024-06-07披露的...
台湾安全企业戴夫寇尔针对PHP程序语言于6月6日修补的漏洞CVE-2024-4577提出警告,此为重大层级的远程程序代码执行(RCE)漏洞,存在于CGI参数而有可能被用于注入攻击。由于全球有近八成网站采用PHP,这项漏洞的影响范围有可能会非常广泛。这项漏洞发生的原因,在于此程序语言在设计时,忽略Windows操作系统对于字符编码...