struts2漏洞大全 S2-001到S2-057漏洞修复方案



           struts2从开发出来到现在,很多互联网企业,公司,平台都在使用apache struts2系统来

开发网站,以及应用系统,这几年来因为使用较多,被攻击者挖掘
出来的struts2漏洞也越来越

,从
最一开始S2-001到现在的最新的s2-057漏洞,本文着重的给大家介绍一下struts2漏洞的利用

情以及漏洞修复办法。

 
先从1开始吧,S2-001影响的版本是Struts 2.0.0 - Struts 2.0.8版本,最早开始的版本漏洞太低级

,当时的apache官方并没有设置安全机制,导致在提交参数的时
候紧接的执行了递归化查询数

据,导致可以插入恶意参数进行SQL注入攻击。


 
 
s2-001漏洞的修复是将struts2的默认altsyntax功能进行关闭使用其他方式进行递归化的查询,为

什么要关闭altsyntax功能是因为这个功能的标签会自动的进行表
达式的安全解析,关闭该功能就

不会进行解析恶意参数了。


 
 
s2-003漏洞是没有过滤恶意参数,导致可以进行参数注入,影响的版本是Struts 2.0.0 - Struts 2.0

.11.2版本,这次的版本新添加了一个功能就是安全拦截器,
在参数传输过程中进行了关键词安全

检测,一些非法注入的参数可以被过滤掉,但
是apache官方并没有过滤掉特殊编码的方式进行

提交,导致伪造编码进行了sql注
入攻击,该漏洞的修复方案是关于编码注入这里进行详细的过滤

,并使用了正则表
达式进行过滤非法的注入参数。
 

 
s2-005漏洞产生的原因也跟上次的S2-003大致相同,也是在传入参数值的时候带进了恶意非法注

入参数,导致可以使用ognl解析的方式来进行远程代码的注入执行。
关于该漏洞的修复是需要将

apache系统参数值denyMethodExecution设置为关闭,
然后将参数的拦截过滤系统进行了升级

,更为严格的一个正则表达式过滤。



S2-007,S2-008,S2-009漏洞详情是需要开启decmode开发模式,在调试开发代码过程中存在了

注入的漏洞,甚至对于单引号并没有进行安全限制,导致可以提交到后
台进行转义,造成变量上

的转义注入,S2-009也是POST提交参数的注入攻击,跟
S2-005,S2-003的参数注入不同的是

,没有对其参数里的安全值进行过滤,导致可
以插入恶意参数进行SQL数据库注入攻击。 同样

的官方修复方案是对其过滤系统进
行升级,严格执行正则表达式过滤一些可能导致注入的非法参

数。
 
 
S2-012漏洞的产生原因是默认的apache 配置文件struts.xml对默认的对象进行了重定向的一个功

能设置,导致该重定向之解析表达式的过程中产生了远程代码执行
漏洞,关于该漏洞的修复官方

进行了表达式解析的安全过滤。
 
 
S2-013漏洞利用是因为标签属性的原因,标签设置参数里竟然可以执行表达式,会让URL值的参

数进行传递表达式,漏洞的修复也很简单对其标签属性进行了删除。
S2-015的漏洞是因为系统配

置里的任意通配符映射导致二次执行ognl表达式进行了
远程代码的执行漏洞,首先该系统没有对

网站URL进行白名单的安全检测,当使用
一些特殊符号叹号,百分号的时候可以直接提交上去。

造成了恶意代码的远程执行
。漏洞的修补办法是对DefaultActionMapper的类进行了安全检测,过

滤非法的注
入代码。
 
 
以上是S2-001到S2-015漏洞的产生原因,以及漏洞修复的办法介绍,因为文章字数限制,其他版

本的
struts2漏洞将会在下一篇文章中给大家讲解。
分享: