`
superseven
  • 浏览: 109017 次
  • 性别: 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漏洞检查工具2017版

    "Struts2漏洞检查工具2017版"提供了一种高效且全面的方式来识别和解决这些问题,确保你的Web应用程序免受恶意攻击,保护用户数据和系统安全。在进行安全检查的同时,也应关注最新的安全公告和补丁,及时采取预防措施...

    struts2 最新漏洞 S2-016、S2-017修补方案 .docx

    S2-017 漏洞是由于 Struts2 的 DefaultActionMapper 的 handleSpecialParameters 方法存在缺陷,从而导致攻击者可以 inject 恶意代码。这个漏洞也影响了 Struts2 的所有版本。 为了修补这两个漏洞,需要对 Struts2 ...

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

    同时,我们也可以了解到 Struts2 漏洞 S2-045 的成因和解决方法,对于企业级应用程序的安全性具有重要意义。 参考文献 Apache Struts 2 - S2-045 Vulnerability. (n.d.). Retrieved from Struts 2 -Downloads. ...

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

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

    Struts2漏洞利用工具2017版

    解决方法是禁用REST插件或升级Struts2到修复此漏洞的版本。 S2-016,名为“Struts2 ExecuteAction和ResultAction插件远程代码执行漏洞”,该漏洞存在于ExecuteAction和ResultAction插件中,使得攻击者可以利用OGNL...

    struts2 漏洞利用工具.rar

    解决方法是升级到不受影响的Struts2版本,并正确配置安全策略。 4. **检测工具**: 压缩包中的“struts2 漏洞利用工具”可能包括了自动化脚本或工具,用于扫描目标系统是否存在上述或其他Struts2漏洞。这些工具...

    Struts2漏洞利用工具Devmode版

    总之,"Struts2漏洞利用工具Devmode版"是网络安全领域的重要工具,它帮助我们识别并解决Struts2框架的潜在风险,提升系统的安全性。了解和掌握这种工具的使用方法,对于任何负责维护基于Struts2的Web应用的人员来说...

    Struts2漏洞检测工具2018年8月版本

    然而,随着时间的推移,Struts2框架发现了一系列的安全漏洞,这些漏洞可能导致远程代码执行、敏感信息泄露等问题,对使用该框架的系统构成了严重威胁。2018年8月的"Struts2漏洞检测工具"正是为了帮助用户识别和修复...

    【2017版】Struts2漏洞检查工具

    解决这个问题的方法通常是限制OGNL表达式的执行,或者升级到修复了该漏洞的Struts2版本。 S2-048漏洞,名为“Struts2 S2-045的变种”,是S2-045的一个变体,同样可能导致远程代码执行。尽管这个漏洞可能比S2-045更...

    Struts2 安全漏洞解决方法

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

    Apache_Struts2漏洞(S2-045,CVE-2017-5638)

    对于任何使用Struts2的企业和开发者来说,了解并解决这个漏洞是保护系统安全的基础工作。通过深入理解漏洞原理,采取相应的预防措施,可以显著降低被攻击的风险。在压缩包文件中,可能包含了详细的安全分析报告、...

    Struts2漏洞检查工具2019版 V2.3.zip

    Struts2是一款非常流行的Java Web框架,用于构建和维护可扩展...总之,Struts2漏洞检查工具2019版 V2.3.exe 是Java后端开发和运维人员的有力助手,可以帮助他们识别并解决Struts2框架中的安全风险,确保系统的安全性。

    Struts2远程执行漏洞 Jar包集合体

    解决这些漏洞的方法通常涉及更新Struts2到最新的安全版本,以及正确配置Struts2的应用程序以限制OGNL表达式的使用。开发者应遵循最佳实践,避免在应用中使用可能暴露于RCE风险的动态方法调用和不受限制的OGNL表达式...

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

    首先,s2-005漏洞(CVE-2012-0881)是2012年发现的一个严重问题,它涉及到Struts2的OGNL(Object-Graph Navigation Language)表达式在反序列化过程中的不当处理。OGNL是一种强大的表达式语言,允许动态访问和操作...

    struts2漏洞升级最新包2.3.15.1

    2. **仔细阅读官方文档**:Struts2官方会提供详细的升级指南,包括可能的兼容性问题和解决方法。确保遵循这些指导步骤。 3. **测试环境验证**:在生产环境升级之前,先在测试环境中进行升级并进行全面的功能测试,...

    Struts2漏洞?

    解决Struts2漏洞通常需要及时更新Struts2框架到最新版本,因为开发者通常会在新版本中修复已知的安全问题。同时,也需要正确配置Struts2的过滤器,限制不安全的OGNL表达式,并且避免在Action配置中使用未验证的用户...

    struts2-016/017漏洞解决

    Struts2 S2-017漏洞,也称为“Struts2 REST插件远程代码执行漏洞”,影响Struts2的2.3.5到2.3.31及2.5.0到2.5.10.1版本。此漏洞与REST插件有关,该插件使得Struts2应用程序能够处理RESTful请求。攻击者可以利用此...

Global site tag (gtag.js) - Google Analytics