struts2从开发出来到如今,不少互联网企业,公司,平台都在使用apache struts2系统来开发网站,以及应用系统,这几年来由于使用较多,被攻击者挖掘出来的struts2漏洞也愈来愈,从最一开始S2-001到如今的最新的s2-057漏洞,本文着重的给你们介绍一下struts2漏洞的利用详情以及漏洞修复办法。正则表达式
先从1开始吧,S2-001影响的版本是Struts 2.0.0 - Struts 2.0.8版本,最先开始的版本漏洞过低级,当时的apache官方并无设置安全机制,致使在提交参数的时候紧接的执行了递归化查询数据,致使能够插入恶意参数进行SQL注入攻击。sql
s2-001漏洞的修复是将struts2的默认altsyntax功能进行关闭使用其余方式进行递归化的查询,为何要关闭altsyntax功能是由于这个功能的标签会自动的进行表达式的安全解析,关闭该功能就不会进行解析恶意参数了。数据库
s2-003漏洞是没有过滤恶意参数,致使能够进行参数注入,影响的版本是Struts 2.0.0 - Struts 2.0.11.2版本,此次的版本新添加了一个功能就是安全拦截器,在参数传输过程当中进行了关键词安全检测,一些非法注入的参数能够被过滤掉,可是apache官方并无过滤掉特殊编码的方式进行提交,致使伪造编码进行了sql注入攻击,该漏洞的修复方案是关于编码注入这里进行详细的过滤,并使用了正则表达式进行过滤非法的注入参数。apache
s2-005漏洞产生的缘由也跟上次的S2-003大体相同,也是在传入参数值的时候带进了恶意非法注入参数,致使可使用ognl解析的方式来进行远程代码的注入执行。关于该漏洞的修复是须要将apache系统参数值denyMethodExecution设置为关闭,而后将参数的拦截过滤系统进行了升级,更为严格的一个正则表达式过滤。安全
S2-007,S2-008,S2-009漏洞详情是须要开启decmode开发模式,在调试开发代码过程当中存在了注入的漏洞,甚至对于单引号并无进行安全限制,致使能够提交到后台进行转义,形成变量上的转义注入,S2-009也是POST提交参数的注入攻击,跟S2-005,S2-003的参数注入不一样的是,没有对其参数里的安全值进行过滤,致使能够插入恶意参数进行SQL数据库注入攻击。 一样的官方修复方案是对其过滤系统进行升级,严格执行正则表达式过滤一些可能致使注入的非法参数。app
S2-012漏洞的产生缘由是默认的apache 配置文件struts.xml对默认的对象进行了重定向的一个功能设置,致使该重定向之解析表达式的过程当中产生了远程代码执行漏洞,关于该漏洞的修复官方进行了表达式解析的安全过滤。网站
S2-013漏洞利用是由于标签属性的缘由,标签设置参数里居然能够执行表达式,会让URL值的参数进行传递表达式,漏洞的修复也很简单对其标签属性进行了删除。S2-015的漏洞是由于系统配置里的任意通配符映射致使二次执行ognl表达式进行了远程代码的执行漏洞,首先该系统没有对网站URL进行白名单的安全检测,当使用一些特殊符号叹号,百分号的时候能够直接提交上去。形成了恶意代码的远程执行。漏洞的修补办法是对DefaultActionMapper的类进行了安全检测,过滤非法的注入代码。编码
若是您对网站的漏洞不懂的话,建议让网站安全公司帮您修复网站漏洞,以及清除木马后门,作好网站安全加固防止被入侵,国内的网站安全公司,像SINE安全公司、绿盟安全公司、启明星辰、都是比较专业的。3d
以上是S2-001到S2-015漏洞的产生缘由,以及漏洞修复的办法介绍,由于文章字数限制,其余版本的struts2漏洞将会在下一篇文章中给你们讲解。调试