java反序列化Commons-Collections1分析】的更多相关文章

Java安全之Commons Collections1分析(二) 0x00 前言 续上篇文,继续调试cc链.在上篇文章调试的cc链其实并不是一个完整的链.只是使用了几个方法的的互相调用弹出一个计算器. Java安全之Commons Collections1分析(一) 下面来贴出他的完整的一个调用链 Gadget chain: ObjectInputStream.readObject() AnnotationInvocationHandler.readObject() Map(Proxy).ent…
Java安全之Commons Collections1分析(一) 0x00 前言 在CC链中,其实具体执行过程还是比较复杂的.建议调试前先将一些前置知识的基础给看一遍. Java安全之Commons Collections1分析前置知识 0x01 CC链分析 这是一段poc代码,执行完成后会弹出一个计算器. import org.apache.commons.collections.*; import org.apache.commons.collections.functors.Chained…
Java安全之Commons Collections1分析前置知识 0x00 前言 Commons Collections的利用链也被称为cc链,在学习反序列化漏洞必不可少的一个部分.Apache Commons Collections是Java中应用广泛的一个库,包括Weblogic.JBoss.WebSphere.Jenkins等知名大型Java应用都使用了这个库. 0x01 前置知识 这里先来看一段网上找的,poc代码 import org.apache.commons.collectio…
Java安全之Commons Collections1分析(三) 0x00 前言 继续来分析cc链,用了前面几篇文章来铺垫了一些知识.在上篇文章里,其实是硬看代码,并没有去调试.因为一直找不到JDK的低版本. 全靠脑子去记传参内容尝试理解.后面的其实就简单多了,在上篇文章的基础上再去做一个分析. ​ Java安全之URLDNS链 Java安全之Commons Collections1分析前置知识 Java安全之Commons Collections1分析(一) Java安全之Commons Co…
本文首发于“合天智汇”公众号 作者:Fortheone 看了好久的文章才开始分析调试java的cc链,这个链算是java反序列化漏洞里的基础了.分析调试的shiro也是直接使用了cc链.首先先了解一些java的反射机制. 一.什么是反射: 反射是Java的特征之一,是一种间接操作目标对象的机制,核心是JVM在运行的时候才动态加载类,并且对于任意一个类,都能够知道这个类的所有属性和方法,调用方法/访问属性,不需要提前在编译期知道运行的对象是谁,他允许运行中的Java程序获取类的信息,并且可以操作类…
前言: 这篇主要分析commonCollections2,调用链如下图所示: 调用链分析: 分析环境:jdk1.8.0 反序列化的入口点为src.zip!/java/util/PriorityQueue.java 此时将会对队列调用siftdown函数,其中队列中包含了两个元素,其中一个即为templatesImpl恶意类 接下来调用siftDownUsingConparator函数 在这里将调用TransformingComparator的compare函数,在这里就到了新的漏洞触发点,thi…
前言: CommonsCollections7外层也是一条新的构造链,外层由hashtable的readObject进入,这条构造链挺有意思,因为用到了hash碰撞 yso构造分析: 首先构造进行rce所需要的转换链,这里也用的是chianed里面套Constantrans+invoketrans的方法 接着构造两个hashmap,通过lazymap的decorate用chained进行装饰后放进hashTable 因为这里hashtable放进第二个lazymap时,因为两个lazymap的h…
0x01.基础知识铺垫 接下来这个过程将涉及到几个接口和类 1.LazyMap 我们通过下⾯这⾏代码对innerMap进⾏修饰,传出的outerMap即是修饰后的Map: Map outerMap = TransformedMap.decorate(innerMap, valueTransformer); 2.Transformer Transformer是⼀个接⼝,它只有⼀个待实现的⽅法: 3.ConstantTransformer ConstantTransformer是实现了Transfo…
前言: 这篇文章主要分析commoncollections3,这条利用链如yso描述,这个与cc1类似,只是反射调用方法是用的不是invokeTransformer而用的是InstantiateTransformer,整个调用过程如下图 利用链分析: 如上图所示,入口点还是Annotationinvoationhandler的Entryset 此时将会调用membervalues.get,其中var4位entryset,而membervalues中存储的为lazymap类的实例,即调用lazym…
1.前言 这篇文章继续分析commoncollections4利用链,这篇文章是对cc2的改造,和cc3一样,cc3是对cc1的改造,cc4则是对cc2的改造,里面chained的invoke变成了instantiateTransformer,所以不用invoke反射调用方法,所以外层queue里面放的元素随意 缩减版的函数调用栈如下图所示: 2.利用链分析: 调用还是从PriorityQueue.readObject函数开始 一直到org/apache/commons/collections4…