TAG / CC链

CC链

10

篇研究记录,按年份分组、发布时间倒序排列。使用分类与标签继续缩小技术范围。

2025

01
Java #CC链

CC11链

分析完CC1-7,继续分析一下CC11,CC11使用字节码加载,它其实是CC2+CC6的组合变形 漏洞版本:cc组件3.1-3.2.1 这里我把CC链子的流程图放上来,实际根据CC1-7,可以衍生出来很多CCN CC2链流程 1 2 3 4 5 6 7 8 9 10 /* Gadget chain:…

约 3 分钟
02
Java #CC链

CC5链

cc5的后半部分和之前是一样的,只是在调用LazyMap的get方法时,使用的是 TiedMapEntry 的 toString 方法,相当于是提供了一个新的入口 这里 TiedMapEntry 的同 toString 方法调用了 getValue 方法,而 getValue 方法调用了map的 g…

约 1 分钟
03
Java #CC链

CC7链

cc7与cc5大同小异,也是后面部分不变,变的只是入口的地方 cc7这里的入口点使用了 Hashtable 这里我们简单分析一下,入口类是 Hashtable 的 readObject ,调用本身的 reconstitutionPut 方法,进入 reconstitutionPut 看一下(这里我们…

约 3 分钟
04
Java #CC链

CC2链

之前这里没有搞明白,这次这里动态调试了一下,发现应该是差不多了,回来补一下 在这里add之后进行了下列操作,就是将add的元素,放入了queue数组中 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 priorityQueue.add(templ…

约 3 分钟
05
Java #CC链

CC4链

之前讲的几条链子,都是在commons-collections3.2.1版本之前的攻击链,cc4是在commons-collections4.0版本中的一条链子 实际上,这条链子还是换汤不换药,只是中间执行的方式换了一下,后面还是命令执行和代码执行两种方式 这里用到的是 TransformingCo…

约 3 分钟
06
Java #CC链

CC3链补充

ysoserial中使用 TrAXFilter 类,来触发 newTransformer 方法,最后也可以成功进行类加载 这里我们也进行分析一下 我们来看`TrAXFilter`的构造函数,构造时需要传入一个templates ,然后调用他的`newTransformer`方法,但是这个类并没有继承…

约 2 分钟
07
Java #CC链

CC3链

CC3这条链子和前面的两条链有些不同,在这条链子中我们使用了 动态类加载 替换掉了 Runtime.exec ,由 命令执行 换为了 代码执行 我们来回顾一下动态类加载: ClassLoader中的 loadclass 调用 findClass , findCLass 调用 defineClass…

约 5 分钟
08
Java #CC链

CC6链

tips:cc6这条链是不受jdk版本限制的 cc6的入口换成了 HashMap 的 readObject 方法,这条链实际是要调用 LazyMap的get方法 ,后面的部分就和ysoserial中的cc1后半链一样了 当时我们说URLDNS链中讲到了 HashMap 的 readObject 方法…

约 3 分钟
09
Java #CC链

CC1链补充

ysoserial中的cc1和我们前面所说后半部分是一样的,这里就不细说 在ysoserial中的cc1是用LazyMap替换了 TransformedMap 现在使用 LazyMap 的 get 方法去触发 ChainedTransformer 的 transform 方法 下面为LazyMap的…

约 3 分钟
10
Java #CC链

CC1链

Java反序列化原理: 接受任意对象,执行readObject方法 若有一个A的readObject方法,调用了O1.method1方法,则我们可以修改这个O1 且在O1.method1方法中,调用了O2.method2方法,则我们可以修改这个O2 …… 最后调用了危险方法(Runtime.getR…

约 6 分钟