Notes Site.
post @ 2023-11-15

CC1-LazyMap

Gadget chain

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
Gadget chain:
ObjectInputStream.readObject()
AnnotationInvocationHandler.readObject()
Map(Proxy).entrySet()
AnnotationInvocationHandler.invoke()
LazyMap.get()
ChainedTransformer.transform()
ConstantTransformer.transform()
InvokerTransformer.transform()
Method.invoke()
Class.getMethod()
InvokerTransformer.transform()
Method.invoke()
Runtime.getRuntime()
InvokerTransformer.transform()
Method.invoke()
Runtime.exec()
From:
ysoserial
*/

后面还是用 InvokerTransformer,这个类完成任意命令执行的操作,分析一下改变的地方

LazyMap.get()

也是查找哪里调用了 transform(),map 里没有 key 才能执行到 transform()

image-20231117154740737

构造方法

类型为 protected

image-20231117163738044

Read More
post @ 2023-11-12

CC1-TransformedMap

CC1链对JDK版本有要求,需在8u71之前

Jdk1.8.0.65: https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html

sun包: https://hg.openjdk.org/jdk8u/jdk8u/jdk/rev/af660750b2f4
src\share\classes\sun,放到Jdk下解压的src包内,Idea添加

image-20231114132357257

导入maven依赖(pom.xml)

image-20231113194232916

Transformer-执行类

主要利用方法 Transform(),看那些类实现了这个类

image-20231113213642842

Read More
⬆︎TOP