Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Log4j_Vulnerability_Demo — 一个简单的程序,用于演示如何利用 Log4j 漏洞(CVE-2021-44228) | Kitploit
工具/GitHubGitHub/chandanshastri/log4j_vulnerability_demo
漏洞分析漏洞利用Web安全学习与教育日志分析
GitHubchandanshastri/log4j_vulnerability_demo

Log4j_Vulnerability_Demo

一个简单的程序,用于演示如何利用 Log4j 漏洞(CVE-2021-44228)

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
34年前尚未审核
分享

Log4j_Vulnerability_Demo

一个用于演示 Log4j 漏洞(CVE-2021-44228)如何被利用的简单程序。

运行演示:

要启动该程序,只需在 UNIX 系统上运行 start.sh,或在 Windows 上运行 start.bat。

用户输入将被读取,并使用 Log4j 框架记录到控制台。

默认情况下,Log4j 库生成的日志消息不会为 JNDI 替换提供任何服务器不可达 / 主机未找到的错误。(我想这也是该漏洞能够被隐蔽利用的一个主要原因)

也可以尝试使用子域名,例如 ${jndi:ldap://test29.google.com/blah},有时 JNDI 调用会等待远程服务器的响应,这就是为什么程序看起来像卡住了,而实际上它已经在后台发起了连接尝试。如果你使用不存在的子域名,JNDI 调用会在发起连接尝试后迅速终止,程序将继续运行。

我建议你在一个 shell 中运行该程序,并在另一个 shell 中并行运行 "tcpdump -i any | grep google" 命令,然后向程序提供输入,以查看程序是否发起了连接尝试。

Log4j 替换的实际效果:

image

尝试远程连接:

image

image

一些示例输入:

testing(普通字符串)

可能不仅仅是日志消息的示例:

${env:USER}(UNIX)

${env:USERNAME}(Windows)

${jndi:ldap://test.java.net}

${jndi:ldap://localhost:12000}

--

监控:

tcpdump -i any | grep -i "java.net"

ncat -k -vv -c "echo hi" -l 12000

--

移除 JndiLookup 类以缓解漏洞:

zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

这将从 Log4j 核心 Jar 中删除 JndiLookup.class。

在上述步骤之后运行同一个程序,程序不应再发起任何连接尝试 / JNDI 替换。

--

另一种禁用 JNDI 查找的方法

export LOG4J_FORMAT_MSG_NO_LOOKUPS=true

该环境变量将为当前会话禁用 JNDI 查找。
下载工具