首页 >> 网络安全 >>漏洞利用 >> 如何轻松修补WEB服务器上的关键PHP 7漏洞
详细内容

如何轻松修补WEB服务器上的关键PHP 7漏洞

几天前,漏洞测试专家报告了CVE-2019-11043的检测到,这是一个危险的远程执行代码漏洞,可以影响任何使用PHP-FPM的PHP 7网站。在具有NGINX的网站上,此功能的使用非常普遍,这使它们特别容易受到利用此漏洞的攻击。


重要的是要注意,该漏洞位于PHP-FPM中,而不是NGINX中,因此唯一的永久性修补程序是升级到PHP实现的更新版本:PHP 7.1.33,PHP 7.2.24或PHP 7.3.11。


如果利用此漏洞,则CVE-2019-11043 漏洞可能允许黑客通过使用经过特殊设计的URL并添加一些字符(除了攻击者的有效负载),在远程服务器上强制执行自己的任意代码。


另一方面,漏洞测试专家的报告指出,此漏洞太容易利用,因为即使是概念有限且没有黑客知识的用户也可以控制公开的系统,因为它只需要通用的NGINX配置即可, NGINX在fastcgi_split_path_info中使用正则表达式将请求分为两部分。


尽管最好立即更新您的PHP版本,但如果无法做到,请降低显示的方式来减轻利用此漏洞的风险:

  • 您可以向NGINX配置中添加一个try_files策略,以验证$ uri变量可解析为文件(PHP脚本)并拒绝代码为404(未找到)的请求,否则:

location ~ [^/]\.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    fastcgi_param           PATH_INFO $fastcgi_path_info;
    try_files               $uri =404;
    #...
}

重要的是要注意,只有NGINX和PHP-FPM在同一主机上共享相同的docroot时,此缓解措施才有效。

  • 使用F5 BIG-IP ASM(应用程序安全管理器)保护您的应用程序。现有的签名集“命令执行”和“服务器端代码注入”包括攻击签名,这些签名将阻止大多数攻击企图。

  • 添加ModSecurity规则以阻止包含可疑字符%0a或%0d的请求:

SecRule REQUEST_URI "@rx %0(a|A|d|D)" "id:1,phase:1,t:lowercase,deny"

国际网络安全协会(International Institute of Cyber Security)漏洞测试的专家提到,这种缓解方法可能导致误报,因此威胁执行者仍可以找到一种利用该漏洞的方法。

技术支持: 建站ABC | 管理登录