Struts 2 S2-016 Vulenerability Mitigation升级

Thi*_*ara 6 java security jboss struts2 dmi

最近struts修补了一个允许攻击者执行远程代码的漏洞.显然没有修补这就像给黑帽子带来一个红地毯欢迎与潮流: - /

http://struts.apache.org/release/2.3.x/docs/s2-016.html

基本上它允许执行攻击命令,如下所示:

合法行动:http://host/struts2-showcase/employee/save.action?redirect:%25{3*4} 被剥削的行动:http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}

虽然我知道升级应该尽快完成,但是由于我们的代码库使用了旧的struts版本和插件,因此我们会尽快完成升级.

这将需要一些重构来升级struts 2库,然后那些需要进行测试等.

我的问题是,是否有人有任何想法阻止此漏洞被执行?这只有在我们能够升级之前.

我想知道在针对OGNL进行评估之前是否可以编写一个拦截器来清理URL,如果是这样的话,它是否会缓解这个问题?

我的其他想法是以某种方式使用Java安全管理器来停止任意进程调用,这可能吗?它会暂时修补这个洞吗?

正在使用的服务器是jBoss,如果有人认为这是相关的.

Rom*_*n C 1

该问题与DefaultActionMapper它如何处理特殊参数有关。此类可以扩展为覆盖handleSpecialParameters方法。但是,如果关闭DMI,这些特殊参数将不再起作用。使用常量配置

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
Run Code Online (Sandbox Code Playgroud)