[Java反序列化]Java-CommonsCollections2TemplatesImpl利用链分析
Posted Y4tacker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java反序列化]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
实现字节码调用
完整代码
以上是关于[Java反序列化]Java-CommonsCollections2TemplatesImpl利用链分析的主要内容,如果未能解决你的问题,请参考以下文章