(文章出处:阿里云社区 漏洞扫描 > 技术运维问题 > 技术分享 > Struts2代码执行漏洞)
Apache Struts s2-005 远程代码执行漏洞(CVE-2010-1870)
受影响版本:
Struts 2.0.0 - Struts 2.1.8.1
漏洞描述:
在Struts2中访问OGNL的上下文对象必须要使用#符号,S2-003的修复方案中对#号进行过滤,但是没有考虑到unicode编码情况,导致\u0023或者8进制\43绕过。
http://struts.apache.org/docs/s2-005.html
Apache Struts s2-008 远程代码执行漏洞(CVE-2012-0392)
受影响版本:
Struts 2.1.0 - Struts 2.3.1
漏洞描述:
Struts2框架存在一个DevMode模式,方便开发人员调试程序。如果启用该模式,攻击者可以构造特定代码导致OGNL表达式执行,以此对主机进行入侵。
http://struts.apache.org/docs/s2-008.html
Apache Struts s2-016 远程代码执行漏洞(CVE-2013-2251)
受影响版本:
Struts 2.0.0 - Struts 2.3.15
漏洞描述:
在Struts2中,DefaultActionMapper类支持以"action:"、"redirect:"、"redirectAction:"作为导航或是重定向前缀,但是这些前缀后面同时可以跟OGNL表达式。由于Struts2没有对这些前缀做过滤,导致利用OGNL表达式调用java静态方法执行任意系统命令。
http://struts.apache.org/docs/s2-016.html
Apache Struts s2-019 远程代码执行漏洞(CVE-2013-4316)
受影响版本:
Struts 2.0.0 - Struts 2.3.15.1
漏洞描述:
Struts2的“动态调用机制(Dynamic Method Invocation)”存在数量不少的漏洞,一直以来都被各类攻击手法所利用。但“动态调用机制”在2.3.15.1版本以前都是默认打开状态,用户应该把它禁用掉。
http://struts.apache.org/docs/s2-019.html
Apache Struts s2-020 远程代码执行漏洞(CVE-2014-0094)
受影响版本:
Struts 2.0.0 - Struts 2.3.16
漏洞描述:
Apache Struts 2.0.0-2.3.16版本的默认上传机制是基于Commons FileUpload 1.3版本,其附加的ParametersInterceptor允许访问'class' 参数(该参数直接映射到getClass()方法),并允许控制ClassLoader。在具体的Web容器部署环境下(如:Tomcat),攻击者利用 Web容器下的Java Class对象及其属性参数(如:日志存储参数),可向服务器发起远程代码执行攻击,进而植入网站后门控制网站服务器主机。
http://struts.apache.org/docs/s2-020.html
漏洞修复:
1、备份数据,从官方网站http://struts.apache.org/ 下载并安装最新的版本。