在IIS7.5中,PHP解析漏洞是一种常见的安全问题。简而言之,这种漏洞允许攻击者在服务器上执行任意PHP代码。这是一种非常危险的漏洞,因为它可以让攻击者绕过任何保护措施并获得对服务器的完全控制。
这种漏洞通常是由于不正确的服务器配置导致的。如果服务器在处理PHP文件时使用了不安全的默认设置,攻击者可以通过构造特定的请求来绕过安全性检查并执行任意代码。另外,如果服务器上运行的版本的PHP过旧,也可能存在安全漏洞。
假设我们有一个运行IIS7.5的Web服务器,我们想在上面运行PHP脚本。我们可以使用PHP for Windows安装程序来安装PHP,并按照说明进行配置。然而,如果我们不小心,我们可能会留下漏洞,这将威胁到我们的服务器的安全性。
php -v
PHP 5.6.40 (cli) (built: Jan 8 2019 23:08:05)
我们可以看到,这个服务器上安装了PHP版本5.6.40。如果我们查看当前配置,我们可能会发现默认配置将“cgi.force_redirect”设置为“1”。这个选项对于PHP的安全性非常重要,因为它可以确保攻击者不能直接执行PHP代码。
php -i | grep cgi.force_redirect
cgi.force_redirect =>1 => 1
如果攻击者了解这些默认设置,他们就可以构造特定的请求来绕过安全检查并在服务器上执行任意PHP代码。例如,攻击者可以使用“/?"作为查询字符串来调用PHP解析器,并执行任意代码。
http://example.com/index.php/?phpinfo();
为了修复这个漏洞,我们可以在php.ini文件中修改默认设置。将“cgi.force_redirect”设置为“0”可以防止攻击者绕过安全检查并在服务器上执行任意PHP代码。将此设置更改为“0”可以确保我们的服务器免受此漏洞的攻击。
[cgi]
...
; cgi.force_redirect is necessary to provide security running PHP as a CGI under
; most web servers. Left undefined, PHP turns this on by default. You can
; turn it off here AT YOUR OWN RISK
; **You CAN safely turn this off unless you specifically need this feature.**
; cgi.force_redirect = 1
cgi.force_redirect = 0
PHP解析漏洞是IIS7.5上的常见安全问题,但如果您遵循正确的安装和配置步骤,可以防止这些问题的发生。