如果你也正在使用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 设置

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

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

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

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

Struts2漏洞解决的更多相关文章

  1. struts2危险漏洞解决方法

    原创,bgy编写.2013-07-24 前文: 随着苹果开发者网站的沦陷,已经曝光一周的Apache Struts2漏洞再次成为热门话题,今天有消息称由于该漏洞被利用,淘宝的数据库已经被盗,尽管淘宝官 ...

  2. Struts2漏洞拉响网站安全红色警报以及把Struts2更新为最新版本Struts2.3.15.1步骤

    360网站安全检测平台今日发布红色警报称,广泛应用在国内大型网站系统的Struts2框架正在遭到黑客猛烈攻击.利用Struts2“命令执行漏洞”,黑客可轻易获得网站服务器ROOT权限.执行任意命令,从 ...

  3. Struts2漏洞利用原理及OGNL机制

    Struts2漏洞利用原理及OGNL机制研究   概述 在MVC开发框架中,数据会在MVC各个模块中进行流转.而这种流转,也就会面临一些困境,就是由于数据在不同MVC层次中表现出不同的形式和状态而造成 ...

  4. struts2漏洞复现分析合集

    struts2漏洞复现合集 环境准备 tomcat安装 漏洞代码取自vulhub,使用idea进行远程调试 struts2远程调试 catalina.bat jpda start 开启debug模式, ...

  5. Struts2漏洞利用实例

    Struts2漏洞利用实例 如果存在struts2漏洞的站,administrator权限,但是无法加管理组,内网,shell访问500. 1.struts2 漏洞原理:struts2是一个框架,他在 ...

  6. Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)

    Struts2漏洞利用工具下载(已更新V1.8版) 2017-03-21:增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过部 ...

  7. SQL注入漏洞解决方法

    本文只指针编码层次的SQL注入漏洞解决方法,例子代码是以java为主. 1,参数化的预编译查询语句 不安全例子 String query = "SELECT account_balance ...

  8. 阿里云提出的漏洞(Phpcms V9某处逻辑问题导致getshell漏洞解决方法)的问题

    最近从阿里云云盾检测流出来的,相比使用阿里云服务器的朋友已经收到漏洞提醒:Phpcms V9某处逻辑问题导致getshell漏洞解决方法,这个漏洞怎么办呢?CMSYOU在这里找到针对性解决办法分享给大 ...

  9. struts2漏洞-第一次入侵经历

    这两天上数据库,老师给了我们一个网站,该网站是一个售花网站.是有一个师兄写的毕业设计.然后挂在内网,然后使用这个系统,然后分析网站,写个数据库设计的报告.简单的写了数据库作业后就闲来无事做,就想对这个 ...

随机推荐

  1. Discuz更改默认搜索模块

    由于网站使用DZ的侧重点不同,在搜索中可能需要更改默认搜索模块 首先找到模板中搜索模块对应的文件,默认模板中搜索模块的地址是 template\default\common\pubsearchform ...

  2. CSS技巧和经验列表

    如何清除图片下方出现几像素的空白间隙? img{display:block;} 如何让文本垂直对齐文本输入框? input{vertical-align:middle;} 如何使文本溢出边界显示为省略 ...

  3. Kubernetes服务之StatefulSets简介

    StatefulSets在v1.5时还是个beta特性,它取代了v1.4的PetSets特性.PetSets的用户可以参考v1.5的升级指导,将正在运行的PeetSets升级到StatefulSets ...

  4. 数据库外连接及MySQL实现

    MySQL查询分为内连接查询和外连接查询,他们的区别在于:内连接查询的两个表示对等关系,根据条件进行匹配:外连接是以某一个表为主,两一个表根据条件进行关联.外连接分为左外连接.右外连接和全外连接.本文 ...

  5. 既然函数也是对象,那么为什么this不指向普通函数?

    function a(){ var b=1; function exp(){ alert(this.b); } exp(); } var b=2; a(); 既然函数是对象,且exp是在a中运行的,那 ...

  6. AngularJS服务和路由

    colnplie     网页加载的出现一次 link     元素每次改变的时候 **$watch** 监听列表     $scope.$watch("name",functio ...

  7. Python基础入门教程,Python学习路线图

    给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...

  8. vijos1059题解

    题目: XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡.城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木.小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大 ...

  9. JAVA - 深入JAVA 虚拟机 2

    类的两种类型的类加载器 -Java虚拟机自带的加载器 根类加载器(Bootstrap): 使用C++编写,programer can not abtain this class. 扩展类加载器(Ext ...

  10. vue.js实现内部自定义指令和全局自定义指令------directive

    在Vue中,我们平时数据驱动视图时候,内部自带的指令有时候解决不了一些需求,这时候,Vue给我们一个很好用的东东 directive 这个单词是我们写自定义指令的关键字哦 之定义指令为我们提供了几个钩 ...