关于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漏洞的分析,及解决方法,主要通过自定义一个拦截器来完成,简单有效
"Struts2漏洞检查工具2017版"提供了一种高效且全面的方式来识别和解决这些问题,确保你的Web应用程序免受恶意攻击,保护用户数据和系统安全。在进行安全检查的同时,也应关注最新的安全公告和补丁,及时采取预防措施...
同时,我们也可以了解到 Struts2 漏洞 S2-045 的成因和解决方法,对于企业级应用程序的安全性具有重要意义。 参考文献 Apache Struts 2 - S2-045 Vulnerability. (n.d.). Retrieved from Struts 2 -Downloads. ...
S2-017 漏洞是由于 Struts2 的 DefaultActionMapper 的 handleSpecialParameters 方法存在缺陷,从而导致攻击者可以 inject 恶意代码。这个漏洞也影响了 Struts2 的所有版本。 为了修补这两个漏洞,需要对 Struts2 ...
Struts2低版本安全漏洞及解决办法 Struts2低版本安全漏洞及解决办法
解决方法是禁用REST插件或升级Struts2到修复此漏洞的版本。 S2-016,名为“Struts2 ExecuteAction和ResultAction插件远程代码执行漏洞”,该漏洞存在于ExecuteAction和ResultAction插件中,使得攻击者可以利用OGNL...
解决方法是升级到不受影响的Struts2版本,并正确配置安全策略。 4. **检测工具**: 压缩包中的“struts2 漏洞利用工具”可能包括了自动化脚本或工具,用于扫描目标系统是否存在上述或其他Struts2漏洞。这些工具...
总之,"Struts2漏洞利用工具Devmode版"是网络安全领域的重要工具,它帮助我们识别并解决Struts2框架的潜在风险,提升系统的安全性。了解和掌握这种工具的使用方法,对于任何负责维护基于Struts2的Web应用的人员来说...
然而,随着时间的推移,Struts2框架发现了一系列的安全漏洞,这些漏洞可能导致远程代码执行、敏感信息泄露等问题,对使用该框架的系统构成了严重威胁。2018年8月的"Struts2漏洞检测工具"正是为了帮助用户识别和修复...
解决这个问题的方法通常是限制OGNL表达式的执行,或者升级到修复了该漏洞的Struts2版本。 S2-048漏洞,名为“Struts2 S2-045的变种”,是S2-045的一个变体,同样可能导致远程代码执行。尽管这个漏洞可能比S2-045更...
Struts2 安全漏洞解析,距离上个版本发布仅仅过去1周,apache struts官网又发布struts2最新版本安全公告,主要修复了一个漏洞,代号S2-022:从漏洞简要描述来看,确定是对之前S2-021的补充。
对于任何使用Struts2的企业和开发者来说,了解并解决这个漏洞是保护系统安全的基础工作。通过深入理解漏洞原理,采取相应的预防措施,可以显著降低被攻击的风险。在压缩包文件中,可能包含了详细的安全分析报告、...
Struts2是一款非常流行的Java Web框架,用于构建和维护可扩展...总之,Struts2漏洞检查工具2019版 V2.3.exe 是Java后端开发和运维人员的有力助手,可以帮助他们识别并解决Struts2框架中的安全风险,确保系统的安全性。
解决这些漏洞的方法通常涉及更新Struts2到最新的安全版本,以及正确配置Struts2的应用程序以限制OGNL表达式的使用。开发者应遵循最佳实践,避免在应用中使用可能暴露于RCE风险的动态方法调用和不受限制的OGNL表达式...
首先,s2-005漏洞(CVE-2012-0881)是2012年发现的一个严重问题,它涉及到Struts2的OGNL(Object-Graph Navigation Language)表达式在反序列化过程中的不当处理。OGNL是一种强大的表达式语言,允许动态访问和操作...
2. **仔细阅读官方文档**:Struts2官方会提供详细的升级指南,包括可能的兼容性问题和解决方法。确保遵循这些指导步骤。 3. **测试环境验证**:在生产环境升级之前,先在测试环境中进行升级并进行全面的功能测试,...
解决Struts2漏洞通常需要及时更新Struts2框架到最新版本,因为开发者通常会在新版本中修复已知的安全问题。同时,也需要正确配置Struts2的过滤器,限制不安全的OGNL表达式,并且避免在Action配置中使用未验证的用户...
Struts2 S2-017漏洞,也称为“Struts2 REST插件远程代码执行漏洞”,影响Struts2的2.3.5到2.3.31及2.5.0到2.5.10.1版本。此漏洞与REST插件有关,该插件使得Struts2应用程序能够处理RESTful请求。攻击者可以利用此...