关于struts2中出现的漏洞,如何测试解决

如果你也正在使用Struts2作为web层框架做开发或者做公司的送检产品,然后被告知有各种各样的Struts2漏洞,那本篇博客值得你花时间来喽上一两眼。

前端时间抽空为公司做了新一代的送检产品,为了方便,直接选择了手头之前搭好的一个使用Struts2的项目进行开发,开始并没有意识到我正在使用的这个Struts2版本也是有漏洞的,后来检查完之后才被告知有s2-045和s2-046漏洞以及devMode模式(会导致严重远程代码执行漏洞)未关闭。由此就需要进行修改,经过一番学习,了解到我所用的版本依然是存在漏洞的,于是从网上找了最新的Struts2漏洞检测工具以及官网2.3.32版本的jar包进行了替换,之后进行了简单的调试,然后再进行送检最后才通过。

以下是各类漏洞的详细影响信息:

  ==漏洞编号==============影响版本=========================官方公告==========================================影响范围=====
  S2-045 CVE-2017-5638 Struts 2.3.5-2.3.31, Struts 2.5-2.5.10 http://struts.apache.org/docs/s2-045.html 影响范围较大
  S2-037 CVE-2016-4438 Struts 2.3.20-2.3.28.1 http://struts.apache.org/docs/s2-037.html 影响范围小
  S2-032 CVE-2016-3081 Struts 2.3.18-2.3.28 http://struts.apache.org/release/2.3.x/docs/s2-032.html 影响范围小
  S2-020 CVE-2014-0094 Struts 2.0.0-2.3.16 http://struts.apache.org/release/2.3.x/docs/s2-020.html 影响范围小
  S2-019 CVE-2013-4316 Struts 2.0.0-2.3.15.1 http://struts.apache.org/release/2.3.x/docs/s2-019.html 影响范围一般
  S2-016 CVE-2013-2251 Struts 2.0.0-2.3.15 http://struts.apache.org/release/2.3.x/docs/s2-016.html 影响范围非常大
  S2-013 CVE-2013-1966 Struts 2.0.0-2.3.14 http://struts.apache.org/release/2.3.x/docs/s2-013.html 未添加,S2-016范围内
  S2-009 CVE-2011-3923 Struts 2.0.0-2.3.1.1 http://struts.apache.org/release/2.3.x/docs/s2-009.html 未添加,S2-016范围内
  S2-005 CVE-2010-1870 Struts 2.0.0-2.1.8.1 http://struts.apache.org/release/2.2.x/docs/s2-005.html 未添加,S2-016范围内

然后分享一下本次用的漏洞检测工具:链接:http://pan.baidu.com/s/1qXMYeyK 密码:ckt9

2.3.32版本的jar包:链接:http://pan.baidu.com/s/1kUVVHHH 密码:jot0

通过升级jar包,可以避免s2-045和s2-046漏洞,如果是maven项目直接修改pom文件即可(前提是仓库中要有该版本)。

devMode模式的关闭方式是需要在struts.xml 设置


1

<constant name="struts.devMode" value="false" />

 然后通过项目访问 /struts/webconsole.html,如果是404那么则表示该模式已经关闭。

另外,如果使用的Tomcat作为服务器软件,那么webapps下面的example文件夹和docs文件夹都应该删除,example应用可向网站写入有效session,黑客可用于绕过网站验证机制直接登录后台,把Tomcat的默认示例文件、帮助文件、后台管理界面等进行删除,可以有效避免Tomcat应用信息泄露。

可能近年来Struts2框架已经不那么受欢迎了,所以前web层框架也可以考虑使用SpringMVC用起来也是比较舒爽。

原文地址:https://www.cnblogs.com/haoxiu1004/p/9233445.html

时间: 2024-10-12 08:25:43

关于struts2中出现的漏洞,如何测试解决的相关文章

struts2中 jsp:forward 失败原因及解决办法

问题:在Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效了,不但调转不过去还报404错误.不知道是Struts2中不支持还是需要其他的配置. 原因:因为struts2采用过滤器的方式处理请求,默认情况时监控url地址的变化 解决办法1.配置web.xml 解决 1 <filter-mapping> 2 <filter-name>struts2</filter-name&g

Web安全测试中常见逻辑漏洞解析(实战篇)

Web安全测试中常见逻辑漏洞解析(实战篇) 简要: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改查的时候没有进行一个判断,判断所需要操作的信息是否属于对应的用户,导致用户A可以操作其他人的信息.? 逻辑漏洞挖掘一直是安全测试中"经久不衰"的话题.相比SQL注入.XSS漏洞等传统安全漏洞,现在的攻击者更倾向于利用业务逻辑层的应用安全问题,这类问题往往危害巨大,可能造成了企业的资产损失和

struts2漏洞原理及解决办法

1.原理 Struts2的中心是运用的webwork结构,处置 action时号码大全经过调用底层的getter/setter办法来处置http的参数,它将每个http参数声明为一个ONGL(这里是ONGL的介绍)语句.当关键词挖掘工具咱们提交一个http参数: ?user.address.city=Bishkek&user['favoriteDrink']=kumys ONGL将它转换为: action.getUser().getAddress().setCity("Bishkek&q

WEB开发中常见的漏洞

一.SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻击.SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞.在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取.更改.删除,以及进一步导致网站被嵌入恶意代码.被植入后门程序等危害. 通常情况下,SQL注入的位置包括: (1)表单提交,主要是POST请求,也包括GET请求: (2)URL参数提交,主要为GET请求

Struts2中datetimepicker标签

在以前的struts2版本中s:datetimepicker只需要在head标签处设置<s:head theme="ajax"/>,就可以直接使用s:datetimepicker的标签了.而在2.1.6版本中不能直接这样使用了,将datetimepicker移除了.原因是此标签调用了dojo的datetimepicker的库.所以现在使用的时候首先要导入一个库:struts2-dojo-plugin-2.1.6.jar.然后还要设置dojo的taglib<%@ tag

【Struts2】剖析Struts2中的反射技术 ValueStack(值栈)

1,Struts2框架主要组件的处理流程 在说ValueStack之前,笔者先说一说Struts2中常用的组件,struts2中常用组件有strutsPrepareAndExecuteExceptionn,以及一般执行流程: 请求来进入 Filter 控制器 Filter 控制器创建 ValueStack 对象并初始化 Filter 控制器根据 struts.xml 调用 defaultStack 拦截器栈 Filter 控制器根据 struts.xml 调用 Action 处理 Filter

struts2中struts.xml配置文件详解

struts.xml的常用配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts

struts2中实现文件上传功能

在web项目中,文件上传.头像上传这样的功能经常是要用到的,下面就以在struts2中实现文件上传功能为例子,简单地理一下文件上传功能的编码思路. 项目目录结构 项目源代码 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:x

解决struts2中validation.xml配置无效的问题

解决struts2中validation.xml配置无效的问题,我使用了xml的验证,却始终发现无法生效,后面发现才是xml的头文件的格式问题,修改了一下就好了. 成功的xml <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> <val