Struts2/XWork 安全漏洞Remote Command Execution(二)
【my_corner】在其博客中介绍了struts2/xwork的Remote Command Execution Vulnerability漏洞,分析了原因并提供了解决方式,可以参见http://my-corner.iteye.com/blog/720209
去struts官网逛了一下,发现第一种解决方式升级到struts2.2版本(当时的最新版),最终还是没有彻底解决该问题。目前,需要解决该问题需要更新至2.3.1.2或是最新版本并且更新相对应的ongl和xwork的jar包。
如果不能进行升级,建议加入一下过滤设置
my_corner文中提供的方式(过滤#,该方式应该没有问题,不过我没有试。)
<interceptor-ref name="params"> <param name="excludeParams">.*\\u0023.*</param> </interceptor-ref>
下面是官方提供的方式
<interceptor-ref name="params"> <param name="acceptParamNames">\w+((\.\w+)|(\[\d+\])|(\['\w+'\]))*</param> </interceptor-ref>
如何验证漏洞就不多说了,有兴趣去研究一下吧。
建议大家有条件的还是升一下struts的包,虽然不知道最新的包还会爆出什么漏洞来。
对于开源组件应该关注其更新升级情况,至少应该关心S级别的bug。
最后【my_corner】文中提到Windows服务器执行的问题,同样可以执行成功,这种漏洞和服务器无关,只和想象力有关。