文章目录
- 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
实现字节码调用
完整代码
见phith0n/JavaThings