缓解CVE-2017-5638 Apache Struts2漏洞

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓解CVE-2017-5638 Apache Struts2漏洞相关的知识,希望对你有一定的参考价值。

如何在不更新我的Java代码的情况下缓解Struts 2恶意内容类型攻击?

攻击细节https://cwiki.apache.org/confluence/display/WW/S2-045

答案

我会在条件中添加'%','}'和'{'字符,以及它们也不是有效的内容类型标头条目,并且存在于此漏洞的POC漏洞利用有效内容中。

RewriteCond %{HTTP:Content-type} [$#()%}{]
RewriteRule . [F,L]

对不起,如果我的语法错误,因为我尚未测试此条目。

附:我甚至冒险添加'@','?'和';'字符,但这些可能会破坏应用程序,如果过滤,因为我认为它们实际上是技术上允许的,但我从未在任何应用程序实现中看到内容类型标头中的那些。

另一答案

Apache的mod_rewrite可以过滤掉不良内容类型。

可以进行更高级的检查 - 但是这会检查我们不希望在传入的内容类型标头中看到的字符:

RewriteCond %{HTTP:Content-type} [$#()]
RewriteRule . [F,L]
另一答案

在启用mod_rewrite之后,您可以将此添加到httpd.conf或虚拟主机内:

# MITIGATE CVE-2017-5638
RewriteCond %{HTTP:Content-type} [$#()%}{'"] [OR]
RewriteCond %{HTTP:Content-Disposition} [$#()%}{'"] [OR]
RewriteCond %{HTTP:Content-Length} [$#()%}{'"]
RewriteRule . "-" [F,L]

以上是关于缓解CVE-2017-5638 Apache Struts2漏洞的主要内容,如果未能解决你的问题,请参考以下文章

​如何快速利用s02-45漏洞获取服务器权限

Struts2远程代码执行漏洞预警

StrutsHoneypot:Struts2的蜜罐

思科Talos针对Apache Struts高危漏洞(S2-045) 的防护建议

漏洞预警 | Apache Struts2 曝任意代码执行漏洞 (S2-045)

通 知 关于Apache Struts 2软件存在高危漏洞的紧急通报