Apache Log4j 远程代码执行漏洞的终极解决方案

1.背景

最近一个老系统被检查出有Apache Log4j 远程代码执行漏洞,需要解决此问题,基于此,写此文章记录一下

2.问题分析

老生常谈了,之前发现此漏洞,处理方案都是升级jar包
但是,漏洞随着时间一直有出现,如果一直升级jar包,麻烦不说,治标不治本,开发运维疲于奔命

3.终极解决方案

不升级版本,直接删除jar包中的JndiLookup.class,一劳永逸
具体操作如下:

# (1)使用root用户访问机器,输入下面命令,查找低版本log4j-core位置
find / -name  log4j-core-*# (2)通过(1)步查找结果,可以知道哪些WEB程序使用了
# 使用WEB程序部署的用户如test登录服务器,输入下面命令,查看是否存在JndiLookup.class
# 指令:jar -tf [第(1)步查找到的文件全路径] |grep 'log4j'|grep 'Jndi'
jar -tf /home/test/tomcat/webapps/test/WEB-INF/lib/log4j-core-2.5.jar |grep 'log4j'|grep 'Jndi'
# 备注:log4j-core可能还有其他命名# (3)删除JndiLookup.class
# 指令:zip -q -d [第(1)步查找到的文件全路径] [第(2)步查找到的JndiLookup.class相对路径]
zip -q -d /home/test/tomcat/webapps/test/WEB-INF/lib/log4j-core-2.5.jar org/apache/logging/log4j/core/lookup/JndiLookup.class# 备注:当log4j-core的文件名不是log4j-core-2.8.2.jar,相对路径可能不是这个org/apache/logging/log4j/core/lookup # (4)验证是否存在JndiLookup.class,同第(2)步操作
jar -tf /home/test/tomcat/webapps/test/WEB-INF/lib/log4j-core-2.5.jar |grep 'log4j'|grep 'Jndi'

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

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

相关文章

第三百八十三回

文章目录 1. 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了ModalBarrier组件相关的内容,本章回中将介绍Visibility组件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的Visibility组件是一种容器类组件,主要…

图像质量评价指标计算python代码,PSNR,SSIM,fsim,niqe,lpips,rmse,德尔塔δe

图像质量评价指标计算python,PSNR,SSIM,fsim,niqe,lpips,rmse,德尔塔δe import numpy as np from skimage.metrics import structural_similarity as ssim from skimage.metrics import peak_s…

【LeetCode】第 387 场周赛

3069. 将元素分配到两个数组中 I 给你一个下标从 1 开始、包含 不同 整数的数组 nums ,数组长度为 n 。 你需要通过 n 次操作,将 nums 中的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操作中,将 nums[1] 追加到 arr1 。在第二次操作…

SpringBoot之获取Spring容器上下文组件的工具类封装

SpringBoot之获取Spring容器上下文组件的工具类封装 文章目录 SpringBoot之获取Spring容器上下文组件的工具类封装1. SpringBoot版本2. Spring容器上下文工具类封装 如在一个普通类中获取HttpServletRequest、HttpServletResponse…等等以工具类的形式getBen,而不需要Component…

win11环境下使用hane WIN NFS Server搭建nfs服务

如题,服务端使用hane win nfs server,客户端也是使用wins系统。 S1,安装nfs服务器端,wins系列除了server系列可以使用nfs服务端,其余必须使用额外的组件来实现NFS文件系统的功能。 Networking Software for Windows …

系统学习Python——装饰器:直接管理函数和类

分类目录:《系统学习Python》总目录 在《系统学习Python——装饰器》系列文章中,我们的大多数示例都设计来拦截函数和实例创建调用。这对于装饰器来说很典型,但是它们并不限于这一角色。因为装饰器通过装饰器代码来运行新的函数和类&#xff…

Nodejs 第四十六章(redis持久化)

redis持久化 Redis提供两种持久化方式: RDB(Redis Database)持久化:RDB是一种快照的形式,它会将内存中的数据定期保存到磁盘上。可以通过配置Redis服务器,设置自动触发RDB快照的条件,比如在指…

C#进阶高级语法之LINQ:深入分析LINQ的查询表达式、延迟执行与PLINQ高级特性

LINQ(Language-Integrated Query)是.NET框架的一个强大的查询语言,它可以用来查询各种数据源,如集合、数据库等。LINQ提供了许多高级特性,包括LINQ查询表达式、deferred execution和PLINQ(并行LINQ&#xf…

力扣每日一题 用栈实现队列

Problem: 232. 用栈实现队列 文章目录 思路复杂度💖 朴素版💖 优化版 思路 👨‍🏫 路飞题解 复杂度 时间复杂度: 添加时间复杂度, 示例: O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂度, 示例: O ( …

Linux系统的服务/进程

系统守护进程(服务) •服务就是运行在网络服务器上监听用户请求的进程 •服务是通过端口号来区分的 常见的服务及其对应的端口 1.ftp:21 FTP指的是文件传输协议,它是用于在计算机网络上进行文件传输的标准网络协议。通过FTP&am…

HTTP协议与HTTPS协议

HTTP协议 HTTP协议是一个无状态的协议, 服务器不维护任何有关客户端之前所发请求的消息。 是一种懒政,有状态协议就会更加复杂,需要维护状态(历史信息),要是客户或者服务器失效,会产生状态不一致(状态前后不对称),解决…

【Python 常用脚本及命令系列 2.4 -- int 将字符串数字转为数值】

文章目录 Python int() 函数python 将字符串数字转为数值type 函数使用 Python int() 函数 int() 函数用于将一个字符串或数字转换为整型。 以下是 int() 方法的语法: class int(x, base10)x – 字符串或数字。base – 进制数,默认十进制,如果是16进制…

C++对象内存模型布局详解

目录 本文主要内容如下: 最后还有一些问题: 一、理解虚函数表 二、对象模型概述 三、继承下的C对象模型 单继承: 多继承: 一般的多继承(非菱形继承): 菱形继承: 五、虚继承…

【牛客】VL64 时钟切换

描述 题目描述: 存在两个同步的倍频时钟clk0 clk1,已知clk0是clk1的二倍频,现在要设计一个切换电路,sel选择时候进行切换,要求没有毛刺。 信号示意图: 波形示意图: 输入描述: clk0 clk1为时…

第四十七天| 198.打家劫舍、213.打家劫舍II、337.打家劫舍III

Leetcode 198.打家劫舍 题目链接:198 打家劫舍 题干:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚…

12-Linux部署Zookeeper集群

Linux部署Zookeeper集群 简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。…

jmeter 压测数据库

当前版本: jmeter 5.6.3mysql 5.7.39 简介 JMeter 是一个开源的 Java 应用程序,主要用于进行性能测试和负载测试。它支持多种协议,包括但不限于 HTTP、HTTPS、FTP、JDBC 以及各种 Web Services。对于数据库的压力测试可以使用 JDBC 协议与数…

excel导入标准化

excel导入较导出还是复杂一些,一般分为三个步骤.市面上低代码平台可以将常用的操作固化,并且形成收益,这也是挺好的。我将我的一些总结分享到网上也是我自己乐意的。毕竟尊重技术的还是搞技术的自身,一般企业老板并不太关心技术代…

Spring中@import注解终极揭秘!

技术概念 它能干啥 Import注解在Spring框架中主要用于解决模块化和配置管理方面的技术问题,它可以帮助开发者实现以下几个目标: 模块化配置:在大型项目中,通常需要将配置信息分散到多个配置类中,以便更好地组织和管…

FPGA-DDS原理及实现

DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有相对带宽大,频率转换时间短、分辨率高和相位连续性好等优点。较容易实现频率、相位以及幅度的数控调制,广泛应用于通信领域。 相位累加器是由N位加法器与N位寄存器构成,每个时钟周期的上升沿,加法器…