JNDI-Injection-Exploit 使用教程
项目介绍
JNDI-Injection-Exploit 是一个用于生成可工作的 JNDI 链接并提供后台服务的工具,通过启动 RMI 服务器、LDAP 服务器和 HTTP 服务器来实现。该工具主要用于测试 JNDI 注入漏洞,如 Jackson、Fastjson 反序列化漏洞等。
项目快速启动
环境准备
确保你已经安装了 Java 环境,并且 JAVA_HOME
环境变量已经正确配置。
下载项目
git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
cd JNDI-Injection-Exploit
启动工具
使用以下命令启动工具:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]
-C
:远程 class 文件中要执行的命令(可选,默认命令是 mac 下打开计算器,即"open /Applications/Calculator.app"
)-A
:服务器地址,可以是 IP 地址或者域名(可选,默认地址是第一个网卡地址)
示例
启动 JNDI-Injection-Exploit:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc.exe" -A "192.168.1.1"
应用案例和最佳实践
应用案例
JNDI-Injection-Exploit 可以用于以下场景:
- 漏洞测试:在开发和测试环境中,使用该工具生成 JNDI 链接,插入到 JNDI 注入相关的 POC 中,验证系统是否存在 JNDI 注入漏洞。
- 安全研究:安全研究人员可以使用该工具深入研究 JNDI 注入漏洞的原理和利用方法。
最佳实践
- 端口检查:确保 1099、1389、8180 端口可用,不被其他程序占用。如果需要,可以在
ServerStart
类的 26~28 行更改默认端口。 - 命令安全:确保传入的命令在
Runtime.getRuntime().exec()
方法中可执行,避免使用危险的系统命令。
典型生态项目
JNDI-Injection-Exploit 可以与以下项目结合使用:
- marshalsec:一个用于生成各种序列化漏洞利用 payload 的工具,可以与 JNDI-Injection-Exploit 结合使用,生成更复杂的漏洞利用链。
- ysoserial:一个著名的 Java 反序列化漏洞利用工具,可以生成各种反序列化漏洞的 payload,与 JNDI-Injection-Exploit 结合使用,可以扩展漏洞利用的范围。
通过结合这些生态项目,可以更全面地测试和研究 Java 应用的安全性。