目的

防止黑客利用Tomcat中间件及版本号有针对性发起攻击。

处理方法

输入命令方式

# 进入tomcat/lib目录
cd Tomcat目录/lib
# 解决catalina.jar,备份ServerInfo.properties
unzip catalina.jar
cp org/apache/catalina/util/ServerInfo.properties ServerInfo.properties.bak
# 替换中间件名称、版本号为Unknown
sed -i "s/server.info=.*/server.info=Unknown/g" org/apache/catalina/util/ServerInfo.properties
sed -i "s/server.number=.*/server.number=Unknown/g" org/apache/catalina/util/ServerInfo.properties
# 查看替换是否成功,输出server.info与server.number均为Unknown即正常
grep server org/apache/catalina/util/ServerInfo.properties
# 修改的配置文件替换jar内文件
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
# 删除解压的临时文件
rm org META-INF -rf

脚本方式

#!/bin/bash
[ ! -d "lib" ] && echo "lib目录不存在,请检查脚本是否正确放到tomcat目录下" && exit;
cd ./lib
[ -d "org" ] && rm -rf org;
[ -d "META-INF" ] && rm -rf META-INF;
unzip -q catalina.jar
[ $? != 0 ] && echo "unzip命令不存在,请安装后重试" && exit;
sed -i "s/server.info=.*/server.info=Unknown/g" org/apache/catalina/util/ServerInfo.properties
sed -i "s/server.number=.*/server.number=Unknown/g" org/apache/catalina/util/ServerInfo.properties
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
[ $? != 0 ] && echo "jar命令不存在,可能在PATH中找不到,请正确配置后重试" && exit;
rm org META-INF -rf
echo "操作完成。"

将脚本命名为 tomcat-no-version.sh,放入tomcat目录下执行 sh tomcat-no-version.sh

隐藏Tomcat中间件名称及版本号的更多相关文章

  1. 隐藏NGINX服务器名称 和版本号

    隐藏NGINX服务器名称: 修改或隐藏服务器名称需要修改源码nginx.h,nginx.h在src/core/目录下 .具体操作如下: 把下面两个宏的值修改为自己设定的值,例如"NGX&qu ...

  2. Nginx优化之基本安全优化 (隐藏Nginx软件版本号信息,更改源码隐藏Nginx软件名及版本号,更改Nginx服务的默认用户)

    一,隐藏Nginx软件版本号信息 查看版本号 curl -I 192.168.0.220 HTTP/1.1 200 OK Server: nginx/1.6.2 #这里清晰的暴露了Web版本号(1.6 ...

  3. linux 安装tomcat中间件

    1.首先确认是否已安装jdk.配置好所需要的环境变量,如果未安装好,则需要安装jdk和配置好正确的环境变量. 检查是否安装jdk及环境变量配置:#java -version. 2.如上述安装并配置正确 ...

  4. ios 中获得应用程序名称和版本号

    IOS程序中的应用名称和版本号在 info.plist 文件中存储着,要想在程序中获得需要使用 NSBundle 对象 下面是示例代码: NSBundle *bundle = [NSBundle ma ...

  5. tomcat中间件提交表单数据量过大警告处理方案

    http://www.bubuko.com/infodetail-976418.html http://www.cnblogs.com/yg_zhang/p/4248061.html tomcat中间 ...

  6. 浅谈tomcat中间件的优化【转】

    今天来总结一下tomcat的一些优化的方案,由于本人才疏学浅,写的不好,勿喷! tomcat对于大多数从事开发工作的童鞋应该不会很陌生,通常做为默认的开发环境来为大家服务,不过tomcat默认的一些配 ...

  7. 【转】查看 Linux 发行版名称和版本号的 8 种方法

    如果你加入了一家新公司,要为开发团队安装所需的软件并重启服务,这个时候首先要弄清楚它们运行在什么发行版以及哪个版本的系统上,你才能正确完成后续的工作.作为系统管理员,充分了解系统信息是首要的任务. 查 ...

  8. iOS-----获取当前app的名称和版本号

    iOS获取当前App的名称和版本号 第一步 如图中Info.plist中鼠标点击右键,出现选项框,选着" Show Raw Keys/Values " 第二步 用下面代码就可以获取 ...

  9. 查看 Linux 发行版本的名称以及版本号

    查看LINUX发行版的名称及其版本号的命令: lsb_release -a cat /etc/redhat-release(针对redhat,Fedora)

  10. TomCat中间件漏洞复现总汇

    TomCat中间件漏洞复现 前言 在渗透测试过程中,遇到php的站相对多一点,所以对apache了解的也多一点.TomCat中间件的站了解的比较少一点,这是自己第一次搭建环境测试漏洞,所以在自己摸索的 ...

随机推荐

  1. QGIS 导入文本数据(WKT)

    在做GIS数据处理的时候,经常会遇到原始数据是 text.csv.Excel 等格式的数据.要使用数据前提是要先转换数据. 这里是介绍用 QGIS 导入数据.打开导入方式如下(根据自己的文本类型选择不 ...

  2. flutter util---->常用的一些工具方法

    copy text to clipboard Clipboard.setData(ClipboardData(text: string)); since Flutter1.9, you can use ...

  3. EX6新增的字符串

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. CTF-RE-学习记录-汇编

    八进制运算 加法表 1+1=2 1+2=3 2+2=4 1+3=4 2+3=5 3+3=6 1+4=5 2+4=6 3+4=7 4+4=10 1+5=6 2+5=7 3+5=8 4+5=11 5+5= ...

  5. Unity3D中的Attribute详解(一)

    首先来看一下微软官方对Attributes(C#)的定义: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/conce ...

  6. vue之过滤、筛选功能的实现

    目录 需求 代码 需求 给定一个列表(模拟数据),根据用户输入,自动筛选输入的内容并输出到屏幕 代码 <!DOCTYPE html> <html lang="en" ...

  7. mesql输入中文报错

    错误提示:ERROR 1366 (HY000): Incorrect string value: '\xE6\x9D\x8E\xE5\x8B\x87' for column 'Sname' at ro ...

  8. [Java/LeetCode]算法练习:转变日期格式(1507/simple)

    1 题目描述 题目来源: https://leetcode-cn.com/problems/reformat-date 给你一个字符串 date ,它的格式为 Day Month Year ,其中: ...

  9. MySQL 读书笔记(一)

    1 MySQL 表 1.1 索引组织表 在 InnoDB 存储引擎中,表都是根据主键顺序存放的,这种存储方式称为索引组织表. InnoDB存储引擎中,每张 MySQL表 都有一个唯一主键,如果创建表时 ...

  10. 数组描述线性表(C++实现)

    线性表也称有序表,其每一个实例都是元素的一个有序集合 抽象类linearList 一个抽象类包含没有实现代码的成员函数,这样的成员函数称为纯虚函数,用数字0作为初始值来说明 template<c ...