Log4j的重大漏洞,必须升级到2.16.0漏洞才能完全解除

在这里插入图片描述

0.先说解决办法

Apache-log4j必须升级到2.16.0

1.漏洞来龙去脉

Log4j的重大漏洞,相信关注的同学们都知道是怎么回事了,对于不知道的同学们我在这里简单的插播一下内容:

Apache Log4j2 是一个基于 Java 的日志记录工具。该工具重写了 Log4j 框架,并且引入了大量丰富的特性。
该日志框架被大量用于业务系统开发,用来记录日志信息。
在大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。攻击者利用此特性可通过该漏洞构造特殊
的数据请求包,最终触发远程代码执行。
该漏洞危害等级:严重
影响范围:2.0 <= Apache log4j2 <= 2.14.1

演示:

1、新建一个maven 项目

2、添加如下依赖

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.14.0</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.14.0</version>
</dependency>

3、编写 Java 代码

public class Log4jErrorTest {

    private static final Logger logger = LogManager.getLogger();

    public static void main(String[] args) {
        // 注意这个变量
        String error = "${java:vm}";
        logger.error("==============Log4jErrorInfo,{}", error);
    }

}

4、结果
在这里插入图片描述
以上代码演示过程参考 Log4j重大漏洞、看看我怎么重现与解决
5、解决办法
因为太简单就不自己尝试了,说主要问题,上述文章中给出了两种解决办法(同时我看了其他文章也大概都是这两个方法)。

方法一:排除掉log4j的依赖
方法二:升级版本,直接升到 2.15.0 版本

第一种方法无可厚非,简单粗暴,根子上解决了,但是如果有日志打印就绕不开依赖(专指log4j),那么第二种方法就稳了吗,其实不然。

真正解决漏洞的方法

Apache log4j升级到2.16.0,该版本默认禁用了JNDI并删除了消息查找功能。2.15.0版本仍有可能存在漏洞,虽然修复了JNDI的漏洞,但是其他的漏洞,可能会导致DOS(但不是RCE)。
官网解释如下:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Champion-Dai

你的鼓励将是我创作最大的动力,

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值