log4j2 远程执行代码漏洞修复-Log4j2

导读:本篇文章讲解 log4j2 远程执行代码漏洞修复-Log4j2,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

概述

此次 Apache Log4j2 漏洞触发条件为只要外部用户输入的数据会被日志记录,即可造成不安全的远程代码执行。

修复参考

bug大概的执行逻辑:
黑客在自己的客户端启动一个带有恶意代码的rmi服务,通过服务端的log4j的漏洞,向服务端的jndi context lookup的时候连接自己的rmi服务器,服务端连接rmi服务器执行lookup的时候会通过rmi查询到该地址指向的引用并且本地实例化这个类,所以在类中的构造方法或者静态代码块中写入逻辑,就会在服务端(jndi rmi过程中的客户端)实例化的时候执行到这段逻辑,导致jndi注入。

影响版本

2.0

官方补丁

https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

Gitee地址

gitee的apache log4j 地址 https://gitee.com/apache/logging-log4j2/commits/log4j-2.15.0-rc2
https://gitee.com/apache/logging-log4j2/commits/master

临时解决方案

  1. 设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true”
  2. 设置“log4j2.formatMsgNoLookups=True”
  3. 系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”
  4. 关闭对应应用的网络外连,禁止主动外连

问题详解视频

视频地址:https://b23.tv/k9dpbUT

修复方案

  1. 排除老的依赖,主要是 spring-boot-starter-log4j2的依赖,如果是其他依赖,单独提升版本即可
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>log4j-core</artifactId>
            <groupId>org.apache.logging.log4j</groupId>
        </exclusion>
        <exclusion>
            <artifactId>log4j-jul</artifactId>
            <groupId>org.apache.logging.log4j</groupId>
        </exclusion>
        <exclusion>
            <artifactId>log4j-slf4j-impl</artifactId>
            <groupId>org.apache.logging.log4j</groupId>
        </exclusion>
    </exclusions>
</dependency>
  1. 新增高版本依赖
<dependency>
    <artifactId>log4j-core</artifactId>
    <groupId>org.apache.logging.log4j</groupId>
    <version>2.15.0</version>
</dependency>
<dependency>
    <artifactId>log4j-jul</artifactId>
    <groupId>org.apache.logging.log4j</groupId>
    <version>2.15.0</version>
</dependency>
<dependency>
    <artifactId>log4j-slf4j-impl</artifactId>
    <groupId>org.apache.logging.log4j</groupId>
    <version>2.15.0</version>
</dependency>
<dependency>
    <artifactId>log4j-api</artifactId>
    <groupId>org.apache.logging.log4j</groupId>
    <version>2.15.0</version>
</dependency>
  1. 对工程打包后进行检查
    在这里插入图片描述

参考

https://b23.tv/k9dpbUT

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100196.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!