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漏洞将会在下一篇文章中给大家讲解。
还没有评论,来说两句吧...