Apache Tomcat 信息泄露漏洞CVE-2023-28708处理

news2024/9/27 15:33:37

一、漏洞描述

在这里插入图片描述

Apache Tomcat软件是Jakarta Servlet、 Jakarta Server Pages、 Jakarta Expression Language、 Jakarta WebSocket、 Jakarta Annotations和 Jakarta Authentication 规范的开源实现 。Apache Tomcat实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。Tomcat 服务器作为一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。2023 年 3 月 22日安全机构发布 Apache Tomcat 存在安全漏洞,该漏洞源于用户代理能通过不安全的通道传输会话 cookie导致信息泄露,相关分析这是由于在请求https的时候可重定向到http连接,这个过程会导致会话劫持风险,造成Cookie或Session不安全传输,攻击者可利用该漏洞可在未授权的情况下泄漏 Cookie 或 Session,最终造成服务器敏感性信息泄露。

基本信息:漏洞类型敏感信息泄露
CVE编码:CVE-2023-28708
cvss评分:4
威胁等级:中危
公布时间:2023-03-22 00:00:00
影响范围:现场版本为 tomcat 9.0.46

11.0.0-M1 ≤ Apache Tomcat ≤ 11.0.0-M2
10.1.0-M1 ≤ Apache Tomcat ≤ 10.1.5
9.0.0-M1 ≤ Apache Tomcat ≤ 9.0.71
8.5.0 ≤ Apache Tomcat ≤ 8.5.85

二、漏洞处理

1)版本确认

#Windows 执行:
catalina version

#linux
sh ./bin/version.sh

2)官方修复建议

当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。各个版本链接如下:

Apache Tomcat 11系列: https://tomcat.apache.org/download-11.cgi

Apache Tomcat 10系列: https://tomcat.apache.org/download-10.cgi

Apache Tomcat 9系列: https://tomcat.apache.org/download-90.cgi

Apache Tomcat 8系列: https://tomcat.apache.org/download-80.cgi

因现场使用tomcat 9.0.46,升级到最新版即:9.0.76,考虑到厂商环境,暂升级到9.0.75版;

另可参考官方的修复commit:

3)升级

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.75.tar.gz
tar -xzf apache-tomcat-9.0.75.tar.gz
#备份
cp -r /tomcat9/bin/ /tomcat9/bin_bak
cp -r /tomcat9/lib/ /tomcat9/lib_bak

#停止老版本tomcat
sh /tomcat9/bin/shutdown.sh

#替换
mv apache-tomcat-9.0.75 apache-tomcat-9
mv /tomcat9/bin /tomcat9/bin_old
mv /tomcat9/lib /tomcat9/lib_old
cp ./apache-tomcat-9/bin /tomcat9/
cp ./apache-tomcat-9/lib /tomcat9/

#开启热加载和热部署
vim ./tomcat9/conf/server.xml  #Host标签中加上一个配置
<Context docBase="xxx" path="/xxx" reloadable="true"/>   #reloadable="true"
……
<Context docBase="xxx" path="/xxx" autoDeploy="true"/>    #autoDeploy="true",开启热部署


#.启动新版本tomcat

sh /tomcat9/bin/startup.sh

#验证
sh /tomcat9/bin/version.sh


三、附录

1)热加载 vs 热部署

热加载: 热加载的实现的方式在Web容器中启动一个后台线程,定期检测相关文件的变化,如果有变化就重新加载类,这个过程不会清空Session。过程中,服务器会监听 class 文件改变,包括web-inf/class,wen-inf/lib,web-inf/web.xml等文件,若发生更改,则局部进行加载,不清空session ,不释放内存。开发中用的多,但是要考虑内存溢出的情况。Tomcat默认情况下是不开启热加载的。

热部署: 热部署是在Web应用后台线程定期检测,发现有变化就会重新加载整个Web应用,这种方式会彻底会清空Session。这种方式整个项目就相当于从新部署,包括从新打个.war 文件。 会清空session ,释放内存。Tomcat在启动的时候会将其目录下webapp中war包解压后然后封装为一个Context供外部访问。那么热部署就是在程序运行时,如果我们修改了War包中的东西。那么Tomcat就会删除之前的War包解压的文件夹,重新解压新的War包。项目打包的时候用的多。热部署更多的是在生产环境中使用,就是适用于频繁的部署并且启动耗时长的应用、无法停止服务的应用等。开发环境可直接在Eclipse的Server里面直接配置publishing。

更多参看:https://blog.csdn.net/qq_24313635/article/details/114281148

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/738239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++输出编译器名称和版本以及编译器位数、C/C++常见编译器

使用C输出编译器的名称、版本和位数 #include<iostream>int main() {#ifdef __clang__std::cout << "Compiler: Clang" << std::endl;std::cout << "Version: " << __clang_major__ << "." << __cla…

Anaconda配置可视化绘图库seaborn的方法

本文介绍在Anaconda的环境中&#xff0c;安装Python语言中&#xff0c;常用的一个绘图库seaborn模块的方法。 seaborn模块是基于Matplotlib的数据可视化库&#xff0c;它提供了一种更简单、更漂亮的界面来创建各种统计图形。seaborn模块主要用于数据探索、数据分析和数据可视化…

多线程与并发编程【守护线程、线程同步】(三)-全面详解(学习总结---从入门到深化)

目录 守护线程 什么是守护线程 守护线程的使用 线程同步 实现线程同步 线程同步的使用 守护线程 什么是守护线程 在Java中有两类线程&#xff1a; User Thread(用户线程)&#xff1a;就是应用程序里的自定义线程。 Daemon Thread(守护线程)&#xff1a;比如垃圾回收线程&am…

串口问题案例分享

最近在调试一个新板子的时候&#xff0c;发现一个问题&#xff0c;板子使用的是一个国产的处理器芯片&#xff0c;表现为如果板子232串口的发送和接收与电脑串口连接时&#xff0c;板子可以正常进入系统。 但是如果板子与电脑只接232串口的发送信号&#xff0c;不接232串口的接…

Java入门--字面量

字面量 字面量是指在代码中直接表示特定的常量或值&#xff0c;可以是整数&#xff0c;浮点数&#xff0c;布尔值&#xff0c;字符等 演示 整数和小数 System.out.println(666);//小数System.out.println(99.5);快捷写法&#xff1a;666.sout 加回车 字符 字符必须用单引号…

docker安装es集群(三台)

文章目录 1、防火墙设置&#xff0c;开启所需端口2、创建目录&#xff0c;并更改目录权限3 设置系统参数4 启动5 安装ik分词器6 配置7 安装elasticsearch-head&#xff08;用于访问es&#xff0c;界面化工具&#xff09;8、 修改es中每次返回的数据数量参数&#xff08;默认100…

剑指offer55-II.平衡二叉树

我这个方法比较笨&#xff0c;用的是用的是昨天写的求二叉树深度的方法&#xff0c;先定义dfs求二叉树深度的方法&#xff0c;再定义cur方法&#xff0c;比较左子树和右子树的深度&#xff0c;递归比较每一个子树的左子树和右子树的深度&#xff0c;一旦有一个不平衡就把flag改…

vue3使用Eharts案例

文章目录 安装Eharts代码演示最终效果 安装Eharts 官方快速上手地址 npm install echarts --save代码演示 <script setup> import {onMounted, ref} from "vue"; // import echarts from "echarts"; import * as echarts from echarts; const opt…

聊聊「画图」和工具

经常被问&#xff1a;图怎么画&#xff0c;用啥工具&#xff1f; 01 每次遇到这个问题&#xff0c;脑回路都有一丝丝欢乐的氛围&#xff1b; 并不是问题奇怪&#xff1b; 而是自己对于画图这件事上并不专业&#xff0c;就算是涉及工作上的制图&#xff0c;也没特地去看过任何…

交换机远程登录telnet、SSH、禁止非法用户访问实验

交换机远程登录实验 交换机远程登录实验一、配置Console口登录设备二、配置Telnet远程登录三、Stelnet&#xff08;SSH&#xff09;配置四、远程登录实际中的配置五、禁止非法用户远程登录 交换机远程登录实验 ———————————————————————————————…

解锁数字化转型利器:探秘常用低代码工具大揭秘!

随着数字化转型的深入推进&#xff0c;越来越多的企业开始采用低代码工具来加快应用程序的开发速度。在本文中&#xff0c;我们将介绍常用的低代码工具有哪些&#xff1f;以帮助企业了解并选择适合自己的工具。 1、Zoho Creator Zoho Creator是一款低代码开发平台&#xff0c;提…

Docker配置阿里镜像加速源,超详细

1、首先登入阿里云账号,点击 控制台    2、搜索框查找 容器镜像服务    3、点击 镜像加速器 ,选择对应的操作系统    4、复制加速地址,在系统中配置 默认路径 /etc/docker/daemon.json 5、重启Docker systemctl daemon-reload systemctl restart docker6、验证 当…

【数据结构与算法】力扣:对称二叉树

对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 来源&#xff1a;…

Windows+IDEA+Nginx反向代理本机实现简单集群

先简单创建一个项目&#xff0c;可以是Maven也可以是Spring Initializr&#xff0c;如果是 Maven则需要自己配置启动类 按照目录路径创建controller类 package com.cloud.SR.controller;import org.springframework.beans.factory.annotation.Autowired; import org.springfram…

mac intellij idea配置settings.xml报错解决

今天在配置环境的时候&#xff0c;发现在运行代码的时候不断报错提示maven没有能够成功地被sync&#xff0c;解决方法将以下三点解决了之后&#xff0c;程序最终跑起来了。 1.将maven的版本配置对&#xff0c;之前项目都用的maven-3.8.5这个版本&#xff0c;而我原先用的是mave…

MQ集群搭建

1.⾸先&#xff0c;克隆⼀台IP地址为192.168.230.132的虚拟机&#xff0c;然后参考章节的内 容&#xff0c;在该主机上安装RabbitMQ等环境。再加上之前的虚拟机&#xff0c;这样我们就准备好了两台Linux服 务器。 修改/etc/hosts映射⽂件。 vim /etc/hosts 3.两台Linux主机修改…

python识别登录验证码图片中字符

应用场景&#xff1a;在测试接口时&#xff0c;需要先自动执行登录接口&#xff0c;登录接口需要输入图片中的字符验证码。 实现的步骤主要有以下几步&#xff1a; 一、执行/captcha接口&#xff0c;从接口响应中提取图形验证码的base64编码值&#xff1b; 二、去掉base64编码…

STM32CubeIDE使用示例(STM32CubeMX+STM32CubeIDE+Gcc+JLINK+STM32G030C8T6)

本文简单记录下STM32CubeIDE的使用方法&#xff0c;整体的环境是STM32CubeMXSTM32CubeIDEGccJLINKSTM32G030C8T6&#xff0c;实现的简单测试功能是让STM32G030C8T6板子上的LED闪烁&#xff0c;以STM32G030C8T6 PB4 脚做LED 输出闪烁为例&#xff0c;外部8MHZ 晶振,系统主频64MH…

word 目录创建与提取

前言 word实际上一直在用&#xff0c;但是笔者在写文档都没关注目录的概念&#xff0c;实际上目录就是富文本或markdown编辑器的标题&#xff0c;可以起到跳转的作用。笔者的毕业论文的目录居然还是手打的。 目录创建 实际上word书写的时候就需要设置标题&#xff0c;最近的…

雅思单词量要达到多少才能达到要求?

对于刚开始备考雅思的同学来说&#xff0c;雅思单词是考好雅思的基础&#xff0c;雅思单词量要达到多少才能过关呢&#xff1f;下面为大家介绍一下雅思词汇量的要求。 一、雅思词汇量要求 雅思听力词汇 3000&#xff5e;5000左右&#xff0c;雅思听力是以场景展开的&#xff…