Apache官方今天晚上发布安全公告(官方编号S2-032/CVE编号CVE-2016-3081),Apache Struts2服务在开启动态方法调用(DMI)的情况下,可以被远程执行任意命令,安全威胁程度高。
这一漏洞影响的软件版本为2.3.20-2.3.28,不过2.3.20.2、2.3.24.2两个版本除外,建议尽快升级到相应的最新版本,并关闭DMI。
这是自2012年Struts2命令执行漏洞大规模爆发之后,该服务时隔四年再次爆发大规模漏洞。
截止目前,乌云漏洞报告平台已收到100多家网站的相关漏洞报告,其中银行占了很大比例。
目前已有多个版本的漏洞利用POC在互联网流传,分为命令执行版本与直接写入Web后门的版本。
乌云平台现在已经被该漏洞刷屏,据说后台还有100多个漏洞待审核,因此预计今天晚上会迎来该漏洞爆发的第一个小高峰,尤其是银行业恐怕会被血洗。
结合历史情况分析,该漏洞除了会影响银行与互联网企业(网易/多玩等)以外,还可能影响政府、证券、保险等行业,相关服务一定要提前做好安全应急与防范措施!
如果你在影响范围内,有两种解决方法:
1、禁用动态方法调用
修改Struts2的配置文件,将"struts.enable.DynamicMethodInvocation"的值设置为false,比如:
<constant name="struts.enable.DynamicMethodInvocation" value="false" />;
2、升级软件版本
如果条件允许,可升级Struts版本至2.3.20.2、2.3.24.2或者2.3.28.1,这几个版本都不存在此漏洞。
升级地址:https://struts.apache.org/download.cgi#struts23281
另附漏洞测试样例(无风险):
http://d047ab33ccbe2dda8.jie.sangebaimao.com/struts2-showcase/filedownload/index.action?method:%23_memberAccess%3D@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS%2C%23test%3D%23context.get%28%23parameters.res%5B0%5D%29.getWriter%28%29%2C%23test.println%28%23parameters.command%5B0%5D%29%2C%23test.flush%28%29%2C%23test.close&res=com.opensymphony.xwork2.dispatcher.HttpServletResponse&command=%23%23%23Struts2 S2-032 Vulnerable%23%23%23