如果你也正在使用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 |
|
然后通过项目访问 /struts/webconsole.html,如果是404那么则表示该模式已经关闭。
另外,如果使用的Tomcat作为服务器软件,那么webapps下面的example文件夹和docs文件夹都应该删除,example应用可向网站写入有效session,黑客可用于绕过网站验证机制直接登录后台,把Tomcat的默认示例文件、帮助文件、后台管理界面等进行删除,可以有效避免Tomcat应用信息泄露。
可能近年来Struts2框架已经不那么受欢迎了,所以前web层框架也可以考虑使用SpringMVC用起来也是比较舒爽。
原文地址:https://www.cnblogs.com/haoxiu1004/p/9233445.html