[Java反序列化]Java-CommonsCollections2TemplatesImpl利用链分析

Posted Y4tacker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java反序列化]Java-CommonsCollections2TemplatesImpl利用链分析相关的知识,希望对你有一定的参考价值。

Java-CommonsCollections2TemplatesImpl利用链分析

我们知道我们之前可以利用TemplatesImpl 构造出⽆Transformer数组的利⽤链,那这里是否可以实现呢,答案是是的,在这里的queue

现在开始正文,还是稍微详细说一下利用过程吧
现在我们的目标就是通过PriorityQueue来调用TemplatesImplnewTransformer来加载字节码

 Transformer transformer = new InvokerTransformer("newTransformer", null, null);

通过readObject调用heapify

再调用siftDown

再调用siftDownUsingComparator

通过调用compare

触发TransformingComparatorcompare方法

通过InvokerTransformer利用反射来调用TemplatesImplnewTransformer

触发TemplatesImplnewTransformer


调用getTransletInstance

调用ClassloaderdefineClass实现字节码调用

完整代码

phith0n/JavaThings

以上是关于[Java反序列化]Java-CommonsCollections2TemplatesImpl利用链分析的主要内容,如果未能解决你的问题,请参考以下文章

什么是java的序列化和反序列化?

Java序列化与反序列化

Java序列化与反序列化

Java序列化与反序列化

java 对象序列化与反序列化

Java序列化与反序列化