Tomcat删掉错误页面的版本信息

漏洞(某渗透测试)修复-springboot项目使用内置tomcat去除\隐藏页面的异常报错信息以及版本号信息,亲测有效。 在项目上线进行渗透测试过程中,客户反馈,项目异常界面泄露中间件版本号,需要隐藏,以及tomcat错误异常的信息。 阅读详情

Tomcat服务在响应404/500等网络错误时,默认会将当前版本信息显示出来,这样就造成了中间件版本信息泄露这样的漏洞

方案一:修改版本号

1.进入Tomcat下的lib目录,备份catalina.jar文件后,解压该文件

 cd  tomcat/lib
 cp catalina.jar catalina.jar.bak
 unzip catalina.jar

2.解压后,通过vi编辑器修改解压出来的ServerInfo.properties文件(在/org/apache/catalina/util/下)

vim org/apache/catalina/util/ServerInfo.properties

3.去除ServerInfo.properties文件的版本信息

server.info=ApacheTomcat
server.number=0.0.0.0
server.built=Nov 72016 20:05:27 UTC

4.将修改后的文件压缩回catalina.jar包中

jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties

5.重启Tomcat服务,访问不存在的页面进行404报错验证,看是否还显示中间件版本号

方案二:自定义错误页面替换默认页面

1.进入Tomcat的conf目录,修改web.xml,在标签前添加如下内容

<error-page>
  <error-code>404</error-code>
  <location>/error_404.html</location>
</error-page>
<error-page>
  <error-code>400</error-code>
  <location>/error_404.html</location>
</error-page>
<error-page>
  <error-code>500</error-code>
  <location>/error_404.html</location>
</error-page>
<error-page>
  <error-code>501</error-code>
  <location>/error_404.html</location>
</error-page>

2.进入Tomcat的webapps/ROOT目录,新增error_404.html页面,使用自定义页面已达到隐藏中间件版本信息的目的

3.针对400错误需要单独处理

3.1创建一个web项目,创建类并继承ErrorReportValve

package com.java.report;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.logging.Logger;

import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
import org.apache.catalina.valves.ErrorReportValve;

public class CustomErrorReportValve extends ErrorReportValve {

	// Create a simple logger
	Logger log = Logger.getLogger(CustomErrorReportValve.class.getName());

	@Override
	protected void report(Request request, Response response, Throwable t) {
		try {
			// Write a more friendly, less technical message to the user
			BufferedWriter out = new BufferedWriter(new OutputStreamWriter(response.getOutputStream()));
			out.write("<html><head><title>Oops</title><body>");
			out.write("<h1>Oops</h1>");
			out.write("<p>Well, that didn't go as we had expected.</p>");
			out.write("<p>Don't worry though, we're working on it.</p>");
			out.write("</body></html>");
			out.close();

			// Log the error with your favorite logging framework...
			log.severe("Uncaught throwable was thrown: " + t.getMessage());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

3.2 项目右键导出jar包tomcat-error-report.jar

3.3 把jar包放到lib下,

3.4 配置errorReportValveClass

修改server.xml,在host里配置

<Host errorReportValveClass="com.java.report.CustomErrorReportValve" />

3.5重启Tomcat服务

errer_404.html:https://download.youkuaiyun.com/download/javaL_X/85115283

tomcat-error-report.jar:https://download.youkuaiyun.com/download/javaL_X/85115444

84502 (15) - HSTS Missing From HTTPS Server 漏洞 漏洞名称:84502 (15) - HSTS Missing From HTTPS Server 漏洞描述:The remote HTTPS server is not enforcing HTTP Strict Transport Security (HSTS). HSTS is an optional response header that can be configured on the server to instruct the browser to only communic.. 阅读详情

相关推荐

Anroid8.1 强制修改系统可以adb remount

在Android6.0 (Android M)user版本上,发现使用adb root后再adb remount系统之后会提示这样信息:remount of /system failed: Read-only file system,这是不能对system分区进行操作,提示没有写权限,为只读文件系统Read-only file system,因为系统本身在user就不支持可写操作,我们就不能adb push来调试apk,如果想调试apk就需要修改system、vendor权限问题。 如下现象: C:\Use

wq892373445的博客 1407

Linux进入Tomcat--【1】Tomcat 404 报错 去掉敏感版本号

(a、全局去掉)修改tomcat/lib目录下catalina.jar包中的ServerInfo.properties文件中的参数。将server.info和server.number中关于tomcat版本号的敏感信息删掉,或者直接将=后面的信息全删掉。showReport:如果发生错误,用于在错误页面上显示错误信息(状态代码及其信息)的标志。showServerInfo:如果发生任何错误,则用于在错误页面上显示当前服务器信息的标志。重新启动tomcat即可。

yuxuefenfei110的博客 1898

【Gazebo安装指南】Ubuntu22.04LTS环境下的高效配置与常见问题解决

本文提供了在Ubuntu 22.04 LTS系统上高效安装和配置Gazebo仿真环境的详细指南。针对Gazebo Classic版本,文章对比了通过ROS 2仓库和Ubuntu官方仓库两种主流安装方法,并重点解决了安装过程中常见的软件包定位、模型下载及图形驱动等问题,帮助用户快速搭建稳定的机器人仿真开发环境。

weixin_29279101的博客 435

Tomcat隐藏版本号和报错信息

tomcat隐藏版本号和报错信息

zcfeng 6879

ATAC-seq差异分析实战:从原始数据到GO富集(R/Bioconductor全流程)

本文提供了ATAC-seq差异分析的完整R/Bioconductor实战流程,涵盖从原始数据准备、一致峰集构建、计数矩阵生成,到使用DESeq2进行差异可及性分析,以及差异峰的基因组注释与GO富集分析。文章详细讲解了关键步骤、参数设置和常见问题,旨在帮助研究者获得可靠且可解释的生物学结果。

weixin_29246195的博客 228

手把手教你用AD9834 DDS模块DIY一个可调信号源(附AD原理图/PCB/程序)

本文详细介绍了如何使用AD9834 DDS模块DIY一个高精度可调信号源,涵盖硬件搭建、原理图解读、PCB优化和程序烧录等关键步骤。通过STM32控制实现0-10MHz频率范围输出,特别适合电子设计与射频实验,提供完整的AD原理图、PCB设计和程序代码参考。

weixin_31854867的博客 406

隐藏Tomcat异常页面中的版本信息,Tomcat服务器版本号泄露

隐藏Tomcat异常页面中的版本信息,Tomcat服务器版本号泄露

laterstage的博客 3058

PyTorch多机训练Loss不一致问题排查指南:基于算子级一致性验证

比较二次训练过程中所有算子的误差,定位存在一致性问题的pytorch算子

Hi20240217的博客 1157

Tomcat移除404页面显示的版本号

Windows 进入tomcat目录下的lib文件夹, 找到catalina.jar, 用解压文件打开jar. 找到路径/org/apache/catalina/util/ServerInfo.properties文件 修改/ServerInfo.properties文件里面配置属性即可 Linux 进入tomcat目录下的lib文件夹 运行命令 unzip catalina.jar 编辑ServerInfo.properties属性文件 cd org/apache/catalina

cai454692590的博客 2113

嵌入式主板系统配置实战:OTG切换、双网共存与开机自启详解

在嵌入式Linux系统开发中,系统配置是连接硬件平台与应用功能的关键桥梁。其核心原理在于通过内核参数、文件系统接口和系统服务等机制,实现对硬件资源和系统行为的精细控制。掌握这些配置技术,对于提升开发效率、保障系统稳定性和实现产品差异化至关重要。无论是工业物联网网关、智能终端还是边缘计算设备,都需要对网络、USB、启动项等基础功能进行可靠配置。本文聚焦于嵌入式主板开发中的高频需求,例如OTG功能模式切换、双网共存路由策略以及基于systemd的开机自启动实现,通过具体的命令和脚本示例,为开发者提供一套可直接复

weixin_30827827的博客 320

Yolo8行人车辆目标检测实战分享 完整项目代码可直接运行

Yolo8行人车辆目标检测实战分享 完整项目代码可直接运行

1293

隐藏Tomcat版本信息

前言:软件开发中生产环境有时候需要影响Tomcat的版本,本文主要介绍Tomcat和SpringBoot中设计. 原理:修改Tomcat中的ServerInfo.properties版本信息,使用jar命令重新打包即可,比较简单. jar命令用法:  -c 创建新的归档文件  -t 列出归档目录和文件  -x 解压缩已归档的指定(或所有)文件  -u 更新现有的归档文件  -v 在标准输出中生成详细输出 / 提供更详细输出信息  -f 指定归档文件名 / 为压缩包指定名字  -m 包含指

今天又是充满希望的一天 1万+

从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin

从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin spring-boot-admin 服务端创建与集成入nacos spring-boot-admin 查看日志

峡谷电光马仔的博客 1378

Nginx隐藏响应头信息的Server信息和版本信息,隐藏tomcat版本号

https://gofinall.com/72.html   背景 当使用nginx做为web服务器时,在头部信息会看到版本号相关的信息,在安全扫描的时候会扫出来,要求不能显示nginx版本,避免根据已知的版本的nginx的特有漏洞从漏洞信息中获取该版本的攻击方式并进行攻击。 修改方法 nginx版本:1.14.2 隐藏nginx版本信息 在nginx.conf的http里面加serv...

xujing_2017的博客 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

使用tomcat访问接口后缀为.jsp和返回自定义错误页面

接口名.jsp使用tomcat访问

YP~杨小西 816

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

linux tomcat安全配置

删除默认目录 安装完tomcat后,删除$CATALINA_HOME/webapps下默认的所有目录文件 rm -rf /srv/apache-tomcat/webapps/* 把...\work\Catalina\localhost目录下的相应文件夹也要删掉 用户管理 如果不需要通过web部署应用,建议注释或删除tomcat-users.xml下用户权限相关配置 隐藏...

weixin_30518397的博客 129

tomcat整改

一.删除webapps文件夹   ps -ef|grep xxxx    kill -9 进程号   修改server.xml配置   appBase=""   移动文件夹   mv /home/data/soft-ware/xxxxxx/apache-tomcat-8082/webapps/xxxx  /home/data/soft-ware/webapps/     

laokaizzz的专栏 412

tomcat优化

参考文档:http://nolinux.blog.51cto.com/4824967/160894011.1隐藏版本号tomcat为了避免***针对某些版本进行***,因此我们需要隐藏或者伪装 Tomcat 的版本信息。默认 Tomcat 的版本信息如下:mkdir -p org/apache/catalina/utilcd org/apache/catalina/utilvim ServerI...

weixin_33971977的博客 128

TOMCAT启动后台不报错,页面404

TOMCAT启动后台不报错,页面404 问题描述: 写完项目在eclipse中配置的Tomcat,启动是正常的,控制台显示启动成功,也没有报任何错误信息,但是访问的时候就报404错误,然后直接在bin目录下启动startup.bat的方式就是正常的。 解决方法: 1.先将启动的tomcat停掉,将里边的项目都移除 2.之后双击server中配置的tomcat服务器,会弹出如下界面。 3.然后保存...

weixin_43143917的博客 2379

struts2 报错时不进入 指定的500页面的原因

折腾好些天了,我们项目用的web框架是struts2,具体那个版本就不说了,我想让程序报错时,展示我指定的500错误页面,   一般的做法是在web.xml里面配置500错误,404也一样,     &lt;error-code&gt;500&lt;/error-code&gt; &lt;location&gt;/500.jsp&lt;/location&gt; &lt...

sunnywolf 593

【JavaEE初阶】Tomcat安装与使用及初识Servlet

我们写的Servlet程序就相当于是车厢.Tomcat相当于是车头.我们把写好的Servlet程序放到webapps 目录下,就相当于把车厢挂到车头上.Tomcat如何识别webapps目录下哪些是需要拉着跑的车厢,哪些不是. 就需要靠我们复制粘贴的代码来识别.(WEN-INF/web.xml).在上述过程中,5打包,6部署程序两个过程可以使用IDEA的Tomcat插件把Tomcat 集成到IDEA中.就省去了我们手动打包的过程.手动部署的过程,只需要按一下运行,就可以自动打包部署.

xxxflower的博客 773

《Tomcat架构解析》读书笔记——tomcat优化及安全配置

1:部署包名通过#或者##分隔,可以实现对不同webapp实现统一的请求路径#用于连接目录,##用于连接版本号例:app#a 、app#b两个war包发布,请求路径默认为:/app/a和/app/bapp##1 app##2 :访问/app时:(1)request中没有session信息:使用新版本(2)request中包含session信息:在每个app的会话管理器中寻找。如果没找到,使用...

weixin_30496431的博客 149

在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包并部署启动

1、SpringBoot有内置Servlet容器,为何还要使用外置的容器(Tomcat) 嵌入式Servlet容器:应用打成可执行的jar包 优点:简单,便携 缺点:默认不支持JSP,优化定制比较复杂(使用定制器:修改ServerProperties或者定制嵌入式Servlet容器定制器,更高级的方式是:自己编写嵌入式Servlet容器的创建工厂【EmbeddedWebServerFactoryCustomizerAutoConfiguration】) 实际开发过程中,我们很多情况下绕不开Jsp,于是: 外

Faker_News的博客 458

用织梦创建本地网站通过Tomcat成功部署到Linux服务器详细教程(Ubuntu16.04)

用织梦创建本地网站成功部署到Linux服务器全过程详细教程(Ubuntu16.04) 织梦创建本地网站成功部署到Linux服务器详细教程(Ubuntu16.04) 本教程旨在帮助那些建网站小白如何从头搭建起本地网站并且最终上传到自己或公司的服务器上,实现上线。由于本人之前也是小白,但网上大多数教程零零散散没有指明出现问题的关键所在,所以本人当时也踩了很多坑,在机房折腾了三天网站才成功上线,期间还重...

qq_41211620的博客 1059
雨字头
博客等级 码龄7年 2粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值