漏洞描述
Apache Struts是一款建立Java web应用程序的开放源代码架构。漏洞允许恶意用户绕过内置在ParametersInterceptor中的所有保护(正则表达式模式,拒绝方法调用),可在任何输出字符串注入恶意表达式作进一步求值。ParametersInterceptor中正则表达式把top['foo'](0)作为合法表达式,而OGNL作为(top['foo'])(0)处理,把'foo' action参数值作为OGNL表达式求值。这可导致恶意用户把任意OGNL语句设置在action输出的任意字符串变量中,并以OGNL表示求值,由于OGNL语句在HTTP参数值中,攻击者可以使用黑名单字符如#禁用方法的执行并执行任意方法,绕过ParametersInterceptor和OGNL库保护。