漏洞描述
Apache Struts框架是一个基于Java Servlets,JavaBeans, 和 JavaServer Pages (JSP)的Web应用框架的开源项目。 Apache Struts 2星号匹配机制存在安全漏洞及存在OGNL表达式两次求值,允许远程攻击者利用漏洞执行任意代码。 Apache Struts 2允许定义基于星号的action映射,如: <action name="*" class="example.ExampleSupport"> <result>/example/{1}.jsp</result> </action> 如果请求不匹配任何所定义的action,就会匹配星号,且请求的action名会用于加载基于action名的JSP文件,及把{1}值作为OGNL表达式处理,结果允许在服务端执行任意Java代码。此漏洞包含两个问题的组合: 1,请求的action名没有转义或针对白名单进行检查。 2,当组合使用$和%开放字符时对TextParseUtil.translateVariables中的OGNL表达式进行两次求值。
影响产品
修复建议
建议关注厂商安全公告,及时升级至已修复版本,并结合实际资产暴露情况采取缓解措施。
参考链接
struts.apache.orghttp://struts.apache.org/development/2.x/docs/s2-015.html↗www.oracle.comhttp://www.oracle.com/technetwork/topics/security/cpujan2014-1972949.html↗www.oracle.comhttp://www.oracle.com/technetwork/topics/security/cpuoct2013-1899837.html↗www.securityfocus.comhttp://www.securityfocus.com/bid/64758↗cwiki.apache.orghttps://cwiki.apache.org/confluence/display/WW/S2-015↗