关于Struts2漏洞引起的问题我就不详细细说了,最近在各大网站及论坛上都有描述,上面都列出了具体的解决办法对策,对我来说,刚好遇到有现实的案例去解决,在参考了各大论坛、博客的文档之后做下总结,从Struts2.0.11升级到Struts2.3.15的经历,之间看了很多的博客,大概花了半天的时间,基本解决了问题。废话不多说直接来操作吧。
首先肯定要升级struts2的版本,官方2.3.15.1版本下载struts2.3.15.1地址,具体下载地址:
下载之后,需要用到如下几个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漏洞的博客,里面有更详细的描述,我这里只讲一下解决办法,希望能给码友们提供参考。
相关推荐
二、Struts2安全漏洞修复方法 1. 更新到最新版本:最直接的修复方式是更新Struts2框架到最新稳定版本,因为官方会在新版本中修复已知的安全漏洞。时刻关注Struts2的官方发布和安全公告,及时进行更新。 2. 配置...
最近,Struts2 发生了两个严重的漏洞,分别是 S2-016 和 S2-017,这两个漏洞可能会导致攻击者执行恶意代码,从而危害到网站的安全。 S2-016 漏洞是由于 Struts2 的 Ognl 表达式语言解析器存在缺陷,从而导致攻击者...
在标题“Struts2安全漏洞实用”中,我们可以推测这是一个关于如何识别、理解和利用Struts2框架中的安全漏洞的实践性讨论。安全漏洞是软件开发中的一个关键问题,特别是对于像Struts2这样广泛应用的框架。了解这些...
然而,Struts2在历史上曾出现过一系列的安全漏洞,其中一些是高危的,允许攻击者执行远程代码或控制系统。这个"Struts终极漏洞利用工具"显然旨在帮助安全研究人员和管理员检测和测试Struts2应用是否存在这些已知漏洞...
然而,由于其广泛的使用,Struts2也成为了黑客攻击的目标,因为其历史上存在一系列的安全漏洞。 标题中的"Struts2漏洞检查工具2018版.rar"指的是一个专门针对Struts2框架的2018年发布的漏洞检测工具。这个工具可能...
S2-045 漏洞是一个严重的安全漏洞,影响 Struts2 的多个版本,包括 2.3.5-2.3.31 和 2.5-2.5.102。该漏洞是由于 Struts2 中的 MultiPartRequestWrapper 类中的一个错误导致的,该错误可能会导致攻击者可以上传恶意...
然而,随着时间的推移,Struts2框架发现了一系列的安全漏洞,这些漏洞可能被恶意攻击者利用来执行任意代码,对系统安全构成严重威胁。本"Struts2漏洞检查工具2017版"正是针对这些问题而设计的,它包含了对多个已知...
然而,它在历史上曾遭受过一些严重的安全漏洞,其中一个重要的例子是Struts2的远程代码执行(RCE)漏洞,这允许攻击者通过恶意输入来执行任意代码。在本篇中,我们将深入探讨这些安全漏洞,特别是从版本2.2.3到...
然而,随着时间的推移,Struts2框架出现了一些安全漏洞,这些漏洞可能被黑客利用来攻击系统。"Struts2-漏洞检查工具2018版.zip" 是一个专门针对Struts2框架的安全检测工具包,用于帮助开发者和安全专家识别并修复...
5、作者对不同的struts2漏洞测试语句做了大量修改,执行命令、上传功能已经能通用。 6、支持HTTPS。 7、支持GET、POST、UPLOAD三种请求方法,您可以自由选择。(UPLOAD为Multi-Part方式提交) 8、部分漏洞测试支持...
然而,随着时间的推移,Struts2框架发现了一系列的安全漏洞,这些漏洞可能导致远程代码执行、敏感信息泄露等严重后果。因此,对于使用Struts2的开发者和系统管理员来说,定期进行Struts2漏洞检查至关重要。 Struts2...
3、修改 WEB-INF\classes 目录下struts.xml 文件,加上: <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <constant name="struts.convention.action.mapallmatches" value="true"/> 这...
首先,Struts2.3.35的升级主要是为了修复已知的安全漏洞。在过去的几年里,Struts2框架曾遭受过多个严重漏洞的困扰,比如著名的CVE-2017-9791(也被称为S2-048)和CVE-2017-5638(S2-045)等。这些漏洞允许攻击者...
然而,随着时间的推移,Struts2框架发现了一系列的安全漏洞,这些漏洞可能导致远程代码执行(RCE)风险,使攻击者能够完全控制受影响的服务器。在给定的标题和描述中,提到了几个关键的Struts2漏洞,包括S2-057、S2-...
然而,就像任何其他复杂的软件系统一样,Struts2也存在安全漏洞。其中,S2-045 和 CVE-2017-5638 是一个极其严重的问题,可能导致远程代码执行(RCE),进而让攻击者完全控制受影响的服务器。 S2-045 漏洞,官方...
然而,如同任何复杂的软件系统一样,Struts2在它的生命周期中也暴露出了一些安全漏洞,其中一些可能导致严重的安全问题,比如远程代码执行(RCE)。 标题中的“Struts2漏洞利用工具2016版”很可能是指针对2016年...
然而,随着时间的推移,Struts2框架发现了一系列的安全漏洞,这些漏洞可能被恶意攻击者利用,对服务器造成严重威胁,包括数据泄露、远程代码执行等。针对这些问题,专门的“Struts2漏洞检查工具”应运而生。 该工具...
然而,随着时间的推移,Struts2框架出现了一些安全漏洞,这些漏洞可能会被恶意攻击者利用,对应用程序的安全性构成威胁。"struts2.3.32与漏洞检测工具.rar"这个压缩包文件包含了两个关键部分,旨在帮助开发者处理...
然而,Struts2在历史上存在一系列的安全漏洞,这些漏洞可能导致严重的安全风险,如远程代码执行、信息泄露等。以下是对几个重要漏洞的详细解释: 1. **S2-001 - OGNL注入漏洞** 这个漏洞主要由于Struts2的`...