`
superseven
  • 浏览: 107991 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于struts2漏洞问题及解决办法

阅读更多

   关于Struts2漏洞引起的问题我就不详细细说了,最近在各大网站及论坛上都有描述,上面都列出了具体的解决办法对策,对我来说,刚好遇到有现实的案例去解决,在参考了各大论坛、博客的文档之后做下总结,从Struts2.0.11升级到Struts2.3.15的经历,之间看了很多的博客,大概花了半天的时间,基本解决了问题。废话不多说直接来操作吧。

   首先肯定要升级struts2的版本,官方2.3.15.1版本下载struts2.3.15.1地址,具体下载地址:http://mirrors.hust.edu.cn/apache//struts/binaries/struts-2.3.15.1-all.zip

   下载之后,需要用到如下几个jar包:

commons-fileupload-1.3.jar

commons-io-2.0.1.jar

commons-lang3-3.1.jar

freemarker-2.3.19.jar(替换)

javassist-3.11.0.GA.jar(新增)

ognl-3.0.6.jar(替换)

struts2-core-2.3.15.1.jar(替换)

struts2-dojo-plugin-2.3.15.1.jar

struts2-json-plugin-2.3.15.1.jar

struts2-junit-plugin-2.3.15.1.jar

struts2-spring-plugin-2.3.15.1.jar(替换)

xwork-core-2.3.15.1.jar(替换)

 

升级包之后启动应用会抛出异常,原因在于struts2.0.x版本用有用到redirect时候,在struts2.3.15.1后result已经改变了,具体改换如下:

<result name="xxx" type="redirect-action">

改成

<result name="xxx" type="redirectAction">

改动后,再次启动,在console日志里可以看到会有使用的过期声明,如:

ActionContextCleanUp <<< is deprecated! Please use the new filters!  

在升级之后FilterDispatcher、ActionContextCleanUp已经不建议使用了,具体的解决办法是在web.xml中改下struts配置:

原来:

<filter>
   <filter-name>struts2</filter-name>
   <filter-class>
     org.apache.struts2.dispatcher.FilterDispatcher
   </filter-class>
</filter>

改成:

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  </filter-class>
</filter>

 

再次改了之后再启动,已经可以启动整个应用,但是具体的时候过程中,还是会遇到问题,我所碰到的是主要是两个问题:

1、原来使用struts2标签,在jsp页面上用静态方法时如@com.xx@xxx()时,这种页面会有异常,具体的解决办法如下:

在struts2文件中引入:

<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>

 

2、使用到<s:optiontransferselect ...标签时无法在action中取到选中的数据,具体解决办法,更新下optiontransferselect.js文件,文件在附件中,并且将原来jsp文件中引入如下标签:

<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>

,将原来<s:head ajax="head"... 改成 <sx:head/>

 

解决了这两个问题后,基本我就没发现有其他的问题,测试完成,具体的测试办法,可参考各种struts2漏洞的博客,里面有更详细的描述,我这里只讲一下解决办法,希望能给码友们提供参考。

 

 

 

 

  • js.zip (3.1 KB)
  • 下载次数: 39
分享到:
评论
2 楼 superseven 2013-09-11  
这个我倒没碰到,因为我的页面元素很少直接用struts标签写的
1 楼 zjh198812 2013-08-12  
你好,请问下原来 struts 标签 s:text 里面有 required 属性,如下语句
<s:text name="fname" required="true" />
但升级以后,发现新版本的 struts s:text标签里面没有 required 属性的声明了,好像改成 requiredLable 标签了,原来的页面中使用了很多这个属性,请问有没有好的解决方法

相关推荐

    Struts2低版本安全漏洞及解决办法

    Struts2低版本安全漏洞及解决办法 Struts2低版本安全漏洞及解决办法

    struts2漏洞分析及解决方案

    对struts2漏洞的分析,及解决方法,主要通过自定义一个拦截器来完成,简单有效

    Struts2 安全漏洞解决方法

    Struts2 安全漏洞解析,距离上个版本发布仅仅过去1周,apache struts官网又发布struts2最新版本安全公告,主要修复了一个漏洞,代号S2-022:从漏洞简要描述来看,确定是对之前S2-021的补充。

    struts2漏洞s2-045,不升级jar版本的修补方法,已验证.docx

    0、这是一个简单、暴力、治根的补漏方法 1、struts2漏洞s2-045,不升级jar版本的修补方法,已验证

    struts2反序列化漏洞,存在s2-005、s2-016、s2-016_3、s2-017

    struts2.0反序列化漏洞,存在s2-005、s2-016、s2-016_3、s2-017等漏洞解决方案,已升级可用

    jboss与struts漏洞解决

    jboss漏洞和struts漏洞的详细解决方法

    struts2.0漏洞补丁

    struts2漏洞解决办法 commons-lang3-3.1.jar (保留commons-lang-2.6.jar) javassist-3.11.0.GA.jar (新加包) ognl-3.0.5.jar (替换旧版本) struts2-core-2.3.4.1.jar (替换旧版本) xwork-core-2.3.4.1.jar (替换旧...

    修复struts2的 s-45 s-46漏洞

    struts2 又爆出漏洞了,这里给出修复struts2的 s-45 s-46漏洞所需jar,希望各位成功修复漏洞

    JAVA凤凰框架v118应用代码(包含项目调试方法,附整个源码)

    相对于117解决了以下问题 * 安全过滤器中屏蔽掉一处跨站脚本攻击的漏洞 * 如果文件没有日志信息,则不执行备份日志 * 修改了如果数据包配置文件发生变化,自动加载失败的错误 * 修改了将提交参数容器转换为字符...

    WODECMS开源内容管理系统 v1.1.zip

    2 优化config表冗余字段,增加微信支付和微信公众号配置; 3 隐藏缺失的商城模块后台菜单 4 增加了微信菜单管理和更新功能 5 优化了插件安装流程 6 修复的后台上传附件没权限的提示 7 优化了权限批量生成缓存没...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包3

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包6

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包5

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包10

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包4

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics