文章目录
- Java-CommonsCollections2TemplatesImpl利用链分析
- 完整代码
Java-CommonsCollections2TemplatesImpl利用链分析
我们知道我们之前可以利用
TemplatesImpl
构造出⽆
Transformer数组
的利⽤链,那这里是否可以实现呢,答案是是的,在这里的
queue
现在开始正文,还是稍微详细说一下利用过程吧
现在我们的目标就是通过
PriorityQueue
来调用
TemplatesImpl
的
newTransformer
来加载字节码
Transformer transformer = new InvokerTransformer("newTransformer", null, null);
通过
readObject
调用
heapify
再调用
siftDown
再调用
siftDownUsingComparator
通过调用
compare
触发
TransformingComparator
的
compare
方法
通过
InvokerTransformer
利用反射来调用
TemplatesImpl
的
newTransformer
触发
TemplatesImpl
的
newTransformer
,
调用
getTransletInstance
调用
Classloader
的
defineClass
实现字节码调用