Apache Struts 2 是世界上最流行的 Java Web 服务器框架之一。然而近日国内安全企业安恒信息的安全研究员 Nike.zheng 在 Struts 2 上发现存在高危安全漏洞(CVE-2016-3081,S02-32),Apache Struts2 服务在开启动态方法调用(DMI)的情况下,可以被远程执行任意命令,该漏洞广泛影响所有 struts 版本。
[attach]351399[/attach]
[attach]351400[/attach]
E 安全百科:
Struts 2 是 Struts 的下一代产品,是在 Struts 1 和 WebWork 的技术基础上进行了合并的全新的 Struts 2 框架。其全新的 Struts 2 的体系结构与 Struts 1 的体系结构差别巨大。Struts 2 以 WebWork 为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与 ServletAPI 完全脱离开,所以 Struts 2 可以理解为 WebWork 的更新产品。虽然从 Struts 1 到 Struts 2 有着太大的变化,但是相对于 WebWork,Struts 2 的变化很小。
安恒信息安全研究员在 Struts 2 上发现了一个严重的远程代码执行漏洞(CVE-2016-3081,S02-32),目前 Apache 官方已发布公告,该漏洞危险级别为高危,Apache 已发布最新升级版本修补该漏洞,相关使用该组件的网站系统应该及时进行升级。
[attach]351401[/attach]
漏洞影响范围:
Struts 2.0.0 - Struts Struts2.5.BETA3 (不包括已修复版本 2.3.20.2 and 2.3.24.2,2.3.28.1)
漏洞修复建议:
1. 关闭动态方法调用:
修改 Struts2 的配置文件,将“struts.enable.DynamicMethodInvocation” 设置为 false,如
<constant name="struts.enable.DynamicMethodInvocation" value="false" />;
=“struts.enable.dynamicmethodinvocation”>
2. 如条件允许前提下,可升级 Struts 版本至 Struts 2.3.20.2, Struts 2.3.24.2 或者 Struts 2.3.28.1 来修复漏洞,可进入此链接进行下载:https://struts.apache.org/download.cgi#struts23281