测试环境

web服务器:apache-tomcat-8.0.24-windows-x64

测试工具:Acunetix Web Vulnerability Scanner 9.5

官方Tomcat测试结果

从官网下载原版apache-tomcat-8.0.24-windows-x64.zip,解压之后,直接开始测试。测试结果如下图所示:

漏洞看起来真的很多啊,不要被吓着哦。

漏洞整改

1、删除webapps目录中的docs、examples、host-manager、manager等正式环境用不着的目录,这一步就可以解决大部分漏洞

2、去掉webapps\ROOT中不需要目录和文件

3、解决掉“Slow HTTP Denial of Service Attack“漏洞

Slow HTTP Denial of Service Attack漏洞是利用HTTP POST的时候,指定一个非常大的content-length,然后以很低的速度发包,比如10-100s发一个字节,让这个连接不断开。这样当客户端连接多了后,占用了webserver的所有可用连接,从而导致DOS,属于一种拒绝服务攻击。
解决办法:

打开server.xml找到

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

将其中的connectionTimeout="20000"改为connectionTimeout="8000",其单位是毫秒。

4、解决“Clickjacking: X-Frame-Options header missing”漏洞

“Clickjacking(点击劫持)是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼在2008年提出的。是一种视觉欺骗手段,在web端就是iframe嵌套一个透明不可见的页面,让用户在不知情的情况下,点击攻击者想要欺骗用户点击的位置。”

我们可以通过配置过滤器来解决。

首先,将ClickjackFilter.jar添加到lib目录下。

然后,打开webapps\ROOT\WEB-INF\web.xml添加以下过滤器:

  <filter>
<filter-name>ClickjackFilterDeny</filter-name>
<filter-class>org.owasp.filters.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>DENY</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ClickjackFilterDeny</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

复测结果

重启Tomcat,复测结果如下:

后记

随着企业越来重视信息系统安全性,建议不要直接使用官网下载的tomcat,尽量多进行测试,解决web应用漏洞,升应用安全性。

本文所用到的过滤器源代码及最终的tomcat已经分享到百度云盘,感兴趣的同学可以下载。

http://yunpan.cn/cdq8FvWyvDpjB  访问密码 1f4c

参考资料

1、https://www.owasp.org/index.php/Clickjacking_Protection_for_Java_EE

2、http://www.cnblogs.com/xuanhun/p/3610981.html

3、http://www.cnblogs.com/xuanhun/p/3610981.html

官方Tomcat 8.0.24 Web漏洞整改记录的更多相关文章

  1. tomcat web漏洞整改--Apache Tomcat examples directory vulnerabilities

    在利用AWVS等弱扫工具对网站进行漏洞扫描时,经常会出现一些Tomcat漏洞问题,一般在弱扫报告中,都会给出简单的处理办法,但有时这些办法可能不太适合我们,或者在一些正式使用的环境中,不好操作,那么我 ...

  2. eclipse配置tomcat 8.0.24服务器

    开发j2ee,肯定需要web容器来运行web项目,目前web容器有tomcat,jetty,Jboss,weblogic等服务器,最为常用的是tomcat服务器,其与eclipse的配置如下: tom ...

  3. CentOS源码安装 Tomcat/8.0.24

    依个人的习惯,喜欢将源码安装在/usr/local这个目录下面: 第一步:下载源码 wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.2 ...

  4. Eclipse Tomcat 7.0 添加WEB项目报错:Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules

    前言 我叫梅乾花,我误闯了“从零开始的程序世界”,遭受到了前所未有的的困难,为了活下去,为了看见美好的明天,我开始学习之旅. 问题篇我打开了"Eclipse",将项目导入其中,开启 ...

  5. Error running 'Tomcat 9.0.24': port out of range:-1

    修改tomcat安装目录下的conf--server.xml检查一下,端口不能是-1, 一般会选80,或者1-65535之间的任意一个整数

  6. AppScan9.0.3.5漏洞扫描记录

    1.跨站点脚本编制 这个安全漏洞拿cookie做文章,而且是将前端的一些弹窗方法,要么通过脚本注入,要么通过url.encode之后注入,看几个变异的版本: 版本一: cookie  从以下位置进行控 ...

  7. Tomcat/7.0.81 远程代码执行漏洞复现

    Tomcat/7.0.81 远程代码执行漏洞复现 参考链接: http://www.freebuf.com/vuls/150203.html 漏洞描述: CVE-2017-12617 Apache T ...

  8. Tomcat任意文件上传漏洞CVE-2017-12615

    文章来源:https://blog.csdn.net/qq1124794084/article/details/78044756 漏洞影响的tomcat版本为tomcat7.0.0-7.0.81版本 ...

  9. 【Tomcat 6.0官方文档翻译】—— 简介

    Tomcat作为使用最多的web容器,研究其原理过程,对掌握java web开发有很重要的影响. 因此下定决心,从官方文档入手,好好学学web相关的知识. 介绍     本篇是Apache Tomca ...

随机推荐

  1. ORM框架Entity Framework

    博客园在推广ORM方面的确做了很大的贡献,很多的程序员开始使用ORM,不用写SQL的喜悦让他们激动不已,可是好景不长,他们很快发现众多的烦恼一个接一个的出现了. 很遗憾,我并不打算在这篇文章中解决这些 ...

  2. POJ 2121

    http://poj.org/problem?id=2121 一道字符串的转换的题目. 题意:就是把那个英文数字翻译成中文. 思路:首先打表,然后把每一个单独的单词分离出来,在组合相加相乘. #inc ...

  3. poj 3984

    http://poj.org/problem?id=3984 题目很简单,就是简单的BFS吧,主要的难点在于坐标的问题 这个呢,可以反其道而行之,就是你从(1,1)到(5,5),你肯定走过一次 走过一 ...

  4. ACM/ICPC 之 BFS-广搜+队列入门-抓牛(POJ3278)

    这一题是练习广度优先搜索很好的例题,在很多广搜教学中经常用到,放在这里供学习搜索算法的孩纸们看看= = 题目大意:一维数轴上,农夫在N点,牛在K点,假定牛不会移动,农夫要找到这头牛只能够进行以下三种移 ...

  5. 1.nodejs权威指南--基础知识

    1. 基础知识 1.1 全局作用域及函数 1.1.1 全局作用域 在nodejs中,定义了一个global对象,代表nodejs中的全局命名空间,任何全局变量.函数或对象都是该对象的一个属性值 1.1 ...

  6. Effective C++ -----条款42:了解typename的双重意义

    声明template参数时,前缀关键字class和typename可互换. 请使用关键字typename标识嵌套从属类型名称:但不得在base class lists(基类列)或member init ...

  7. Effective C++ -----条款11: 在operator=中处理“自我赋值”

    确保当对象自我赋值时operator=有良好行为.其中技术包括比较“来源 对象”和“目标对象”的地址.精心周到的语句顺序.以及copy-and-swap. 确定任何函数如果操作一个以上的对象,而其中多 ...

  8. javascript 操作cookie

    function setCookie(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDa ...

  9. 【leetcode】Rotate List(middle)

    Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...

  10. centos7 php7 httpd

    安装php之前,要先安装几个 1.下载php源码:http://cn2.php.net/distributions/php-7.0.6.tar.gz. 2.然后使用命令:tar -zxvf php-7 ...