Java反序列化CC11链
背景该链是CC2和CC6的结合体,CC11使用了CC2动态加载字节码执行命令的方法,使用了CC6的前半部分,把它们不使用数组与字节码执行命令的优点给结合起来了。CC11链分析该链受影响的版本为CommonsCollections 3.1-3.2.1,关于环境的搭建,可以看我之前CC1中的教程。分析该链之前,再重新介绍一下TelplatesIpl加载字节码执行命令。链尾TelplatesIpl加载字
Java反序列化CC7链
背景Java 8u76及以上版本修复了CC5中BadAttributeValueExpException入口点,导致利用链失效,CC7规避这些受到限制的类,找到了一个更底层的类。CC7链分析链尾InvokerTransformer、LazyMap链尾还是不变,直接把CC5的拿来Transformer[] transformers = new Transformer[]{ new
Java反序列化CC5链
背景CC5链可以弥补JDK 8u71及以上版本LazyMapCC1AnnotationInvocationHandler类无法利用的情况,该链的链尾还是使用LazyMapCC1或者CC6的后半部分,而链首新引入了两个类。CC5链分析链尾InvokerTransformer、LazyMap把CC1的流程图拿过来看一下<img src="https://nc0.cdn.zkaq.cn/
Java反序列化CC2链
背景在Shiro反序列化等漏洞利用中,有一些自定义的ClassLoader,如ClassResolvingObjectInputStream,它会限制数组类型(如Transformer[])的动态加载,CC1、CC4等利用链就使用了Transformer数组,导致利用链无法使用,本篇的CC2在CC4的基础上避免了使用数组来构造利用链。CC2分析环境不变链尾TemplateImplCC2只是在CC4
Java反序列化CC4链
背景在commons collections4.0版本之后,InvokerTransformer不再实现Serializable,导致CC1和CC3没办法再利用,本篇CC4利用链是采用CC3执行命令的方法-动态加载字节码,而头部也会采用一个新的类利用。导入依赖<dependency> <groupId>org.apache.common
Java反序列化利用链入门学习-URLDNS链
在了解反序列化链之前,应先了解Java的序列化、反序列化和Java的反射机制什么是 URLDNSURLDNS 是 ysoserial提供的一个反序列化利用链,目的是无回显探测目标系统是否存在 Java 反序列化漏洞,是反序列化链中最简单的一条链,可以作为学习反序列化链的开始。如果我们需要找一个利用链,我们首先需要找到一个能利用的点,例如本文 URLDNS 利用链的 InetAddress#get
Tomcat内存马原理分析与利用
内存马大致可以分为两种,第一种是利用Java Web的组件,如Tomcat下的动态添加Servlet、Filter、Listener的恶意组件,在Spring框架下就是Controller、Intercepter。第二种是修改字节码,如利用Java的Instrument机制,动态注入Agent。本文分析Tomcat型内存马的四种类型,分别为Listener型、Filter型、Servlet型Val
Java安全-动态加载字节码及CC3利用链的原理分析与利用
在利用链的构建过程中,由于受到环境限制,Runtime 类无法被正常使用,因此无法再通过传统的 Runtime 方式来执行命令。为了解决这一问题,可以采用动态加载字节码的方式来实现命令的执行。这种方式通过将需要执行的代码以字节码的形式动态加载到内存中,并利用 Java 的类加载机制在运行时执行,从而绕过对 Runtime 的直接依赖。动态加载字节码基础部分字节码Java字节码是由Java编译器(如
Java反序列化CC6利用链
前文分析到CC1会受到JDK和Commons Collections版本限制,CC6优势在于绕过JDK 8u71-8u202版本限制,8u_202以上的版本还可以配合fastjson利用,Commons Collections 利用范围也较广,因此它是最好用的CC链。版本切换jdk版本用jdk8u71,反编译用openJDK,它的搭建在CC1已经介绍了,这里不再介绍,之前搭建过的可以直接切换版本&
Java反序列化LazyMap 版的 CC1利用链分析
本文将分析 LazyMap 版的 CC1 反序列化利用链。关于前置知识与环境搭建,已在上一篇文章 TransformedMap版CC1链 中进行详细讲解,本篇不再赘述。相较于 TransformedMap 版本,LazyMap 的利用链整体结构变化不大,但在实现细节上稍有差异,它出自ysoserial,下面直接进入核心分析。LazyMap 版的 CC1 反序列化利用链分析链尾InvokerTra