5 分钟复现 log4J 漏洞,手把手实现

简介: 5 分钟复现 log4J 漏洞,手把手实现

微信图片_20220414181314.png

2021年12月10日凌晨前,网上曝出了 log4j 的核弹级漏洞,这种漏洞超级高危,操作简单,利用方便,适用范围广,可以直接任意代码执行接管你的服务器

微信图片_20220414181317.png

此处思考曝光者凌晨曝光的原因,或许选择凌晨曝光,想着无数工程师半夜起来紧急修复,让 TA 产生了变态的快感

我知道你们是想看什么的,就是想看如何演示,不过可能要让你失望了,本来我是发表了如何复现的介绍。

微信图片_20220414181321.png

发表后立马得到了不错的反馈,但是想到可能很多人不是来学习的,可能是真的会进行不当利用,所以还是决定删掉了。真的只是研究下那就加个好友交个朋友吧,公开场合不适合介绍漏洞复现。


0x01. 漏洞情况

Apache Log4j2是一款优秀的Java日志框架。由于 Apache Log4j2 某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置。

这里贴下漏洞公开级别。

漏洞细节 漏洞PoC 漏洞EXP 在野利用
公开 公开 公开 存在

通过网上公开资料,这个漏洞的细节已经完全公开,这里简单演示,让大家了解漏洞情况,尽快安全升级。

根据网络公开新闻,可以梳理出以下时间脉络:

  • 2021年 11 月 24 日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。
  • 2021年12月06日,log4j2 发布修复包 log4j-2.15.0-rc1.jar
  • 2021年12月10日,log4j2 发布修复包 log4j-2.15.0-rc2.jar
  • 2021年12月10日,阿里云安全团队发现 Apache Log4j 2.15.0-rc1 版本存在漏洞绕过请及时更新至 Apache Log4j 2.15.0-rc2 版本

实际受影响范围如下

Apache Log4j 2.x < 2.15.0-rc2

0x02. 安全建议

  1. 排查应用是否引入了 Apache log4j-core Jar 包,若存在依赖引入,且在受影响版本范围内,则可能存在漏洞影响。请尽快升级Apache Log4j2所有相关应用到最新的 log4j-2.15.0-rc2 版本,地址 https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
  2. 升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink
  3. 临时缓解方案。可升级jdk版本至6u211 / 7u201 / 8u191 / 11.0.1以上,可以在一定程度上限制JNDI等漏洞利用方式。对于大于2.10版本的Log4j,可设置 log4j2.formatMsgNoLookups 为 True,或者将 JndiLookup 类从 classpath 中去除,例如 zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

0x03. 漏洞复现

以下测试,只做学习分析之用,不要于其他用途!单机演示,所有地址都是 127.0.0.1

本来不准备画图的,但是很多同学以为注入漏洞就是简单的运行网上的 ${jndi:ldap://127.0.0.1:1389/Log4jTest} ,我觉得还是有必要画个图简单说明一下, 一个简单的攻击链路步骤图,画的匆忙见谅。

微信图片_20220414181325.png

3.1. 环境模拟 - 受害者小白服务

已删除,学习交流可以加微信。

3.2. 环境模拟 - 攻击者服务

已删除。

3.3. 测试

受害者小白服务再次运行,原本只简单打印一行日志,现在多了一行说明信息。

无害测试,没有攻击性,linux/mac 创建文本:xxxyyyzzz.txt;windows 弹出计算器。最后求关注,公众号:程序猿阿朗
20:21:57.780 [main] ERROR Log4j2 - params: xxx

同时运行项目目录多了一个文件 xxxyyyzzz.txt

微信图片_20220414181328.png

如果你是在 windows 上运行测试,那么会弹出一个计算器。

一如既往,文章中的代码存放在:github.com/niumoo/lab-notes

相关文章
|
安全 Java 开发者
刚折腾完Log4J,又爆Spring RCE核弹级漏洞
继Log4J爆出安全漏洞之后,又在深夜,Spring的github上又更新了一条可能造成RCE(远程命令执行漏洞)的问题代码,随即在国内的安全圈炸开了锅。有安全专家建议升级到JDK 9以上,有些专家又建议回滚到JDK 7以下,一时间小伙伴们不知道该怎么办了。大家来看一段动画演示,怎么改都是“将军"。
121 1
|
运维 安全 Java
Log4j2 远程代码执行漏洞——总结
前两天网络有爆料log4j安全漏洞,安全大于天,于是也加入到这个和时间赛跑的临时事件中。对于安全漏洞网上有很多文章,内容都大同小异,不过针对于这件事小编下面的故事一定能让读者有"意外"收获。
|
安全 Java Shell
Apache Log4j2 远程代码执行漏洞
Apache Log4j2是一个·基于Java的日志记录工具,该工具重写了Log4j框架,并且引入大量丰富的特性,该日志框架被大量用于业务系统开发,用来记录日志信息。
111 2
|
安全 druid Java
【紧急】Apache Log4j任意代码执行漏洞安全风险升级修复教程
近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
372 1
|
安全 Java 大数据
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
|
安全 网络协议 Java
【紧急】Log4j又发新版2.17.0,只有彻底搞懂漏洞原因,才能以不变应万变,小白也能看懂
经过一周时间的Log4j2 RCE事件的发酵,事情也变也越来越复杂和有趣,就连 Log4j 官方紧急发布了 2.15.0 版本之后没有过多久,又发声明说 2.15.0 版本也没有完全解决问题,然后进而继续发布了 2.16.0 版本。大家都以为2.16.0是最终终结版本了,没想到才过多久又爆雷,Log4j 2.17.0横空出世。
632 0
|
Kubernetes 安全 中间件
Traefik 如何保护应用免受 Log4j2 漏洞的影响
2021 年 12 月 10 日,Apache Log4j2 中的一个被称为 “Log4Shell” 的漏洞被发布(CVE-2021-44228),引入了严重的安全风险。作为 Java 应用程序日志库中的一个核心组件,其广泛用于著名的开源项目以及企业级后端应用程序。在本文中,我们将向您展示 Traefik 如何基于插件系统帮助我们的业务缓解此问题。
158 0
|
1月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
279 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
2月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
313 3
|
3月前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。