前边2~3篇文章内容,剖析了CommonsCollections:3.2.1版本下列存有的反序列化链。今日将再次剖析CommonsCollections:4.0版本,关键叙述CommonsCollections2,4,8的利用链结构。
0x01 市场前景回望
commons-collections:4.0版本实际上并沒有像3.2.2版本的恢复 *** 一样做加入黑名单解决,因此在3.2.1及下列的利用链修改還是可以用的。比如CommonsCollections5
final Map innerMap=new HashMap();
final Map lazyMap=LazyMap.lazyMap(innerMap, transformerChain);
将innerMap改为键值对的声明 *** 就可以,可是大伙儿是否你是否还记得,除开用LazyMap的 *** ,CommonsCollections3曾提及过应用TrAXFilter类复位的 *** 来加载随意的class bytes数组。
这儿commons-collections:4.0版本下的利用链,用的全是TemplatesImpl做为最后的指令实行的编码调用,因为前边剖析过这一利用 *** ,后文不会再转述。
0x02 利用链分析
1. CommonsCollections2,4
CommonsCollections2,4都采用了一个新的类PriorityQueue的Comparator来开启transform函数,二者的区别取决于正中间的桥接用的不一样的Transformer目标。先看来一下PriorityQueue.readObject
圈圈里的关键工作中为反序列化修复该目标的数据信息,大家重点关注heapify()
再次跟踪siftDown
在我们在实例化目标时出示了comparator,可能赶到大家最后开启compare的部位,看一下siftDownUsingComparator
这儿调用了大家传到的comparator,并调用其compare,利用链中应用了TransformingComparator,看来一下它的compare函数
调用了当今的transformer的transform函数,见到这儿,实际上早已很熟透,前边剖析的许多 利用链都跟transform相关,而且4.0版本并沒有加入黑名单有关的transformer。因此下面,大家就可以用前边的一些构思了。
1.CommonsCollections2CommonsCollections2利用了InvokerTransformer类的随意类函数调用的transform,传到结构好的templates gadget并调用 TemplatesImpl.newTransformer
2.CommonsCollections5CommonsCollections4事后用的方式同CommonsCollections3一样,用InstantiateTransformer来开启TrAXFilter的复位,最后也将调用TemplatesImpl.newTransformer
梳理一下利用链
CommonsCollection2:
PriorityQueue.readObject
-> PriorityQueue.heapify()
-> PriorityQueue.siftDown()
-> PriorityQueue.siftDownUsingComparator()
-> TransformingComparator.compare()
-> InvokerTransformer.transform()
-> TemplatesImpl.newTransformer()
... templates Gadgets ...
-> Runtime.getRuntime().exec()
CommonsCollection4:
PriorityQueue.readObject
-> PriorityQueue.heapify()
-> PriorityQueue.siftDown()
-> PriorityQueue.siftDownUsingComparator()
-> TransformingComparator.compare()
-> ChainedTransformer.transform()
-> InstantiateTransformer.transform()
-> TemplatesImpl.newTransformer()
... templates Gadgets ...
-> Runtime.getRuntime().exec()
2.CommonsCollections8
CommonsCollections8是2020年navalorenzo消息推送到ysoserial上的,8与2,4的区别取决于应用了新的readObject开启点TreeBag
看来一下TreeBag.readObject
这儿的2个关键环节TreeBag的父类的doReadObject函数和TreeMap.
看一下doReadObject
这儿对传到的TreeMap调用了put函数
再次跟踪compare函数
这儿又返回了了解的comparator.compare函数,在其中comparator便是大家结构的TransformingComparator
事后跟CommonsCollections2同样,也不转述了。
一、能干嘛黑客接单流程 1、直播平台攻击软件黑客帝国2剧情详细介绍接单另一个入侵者是那些利用互联网漏洞破坏互联网的人。能干嘛极客与的区别这使得普通人更容易下载和学习使用简单的黑客手段或工具来攻击网络,...
本文导读目录: 1、怎样看待东野圭吾的《白夜行》? 2、为什么做传销的人泯灭人性? 3、上暗网为什么会被杀 4、网上炒外汇骗局有哪些? 5、拐卖孩童的人间惨剧:孩子被虐待、锁在深山、买...
于小彤由于参演87版红楼梦贾宝玉而爆红。和季风水田农业姐弟恋情提出分手厚后又和陈小纭走到一起,两人从官方宣布到在一起早已有2年多的時间了,近期曝陈小纭生日于小彤沒有一切表明两个人疑是提出分手。于小彤陈...
微星这个牌子,对于游戏玩家和极客们来说,一向都是优秀品质和良好做工的象征。所以,很多人购置PC时,都会考虑一下微星。而微星也为了满足玩家的需要,推出了许多游戏笔记本。不过,同样是微星的笔记本,也分为好...
winservn - winservn.exe - 过程信息内容 过程文档: winservn 或是 winservn.exe过程名字: ClickSpring SpyWare叙述:winservn....
一、专业盗号qq黑客联系方式(私人接单黑客qq联系方式)方法总结 1、谁知道现在最新最权威的黑客联系方式最好是QQ我是个小小黑客.可提供软件,教迩盗号技术.【空间不断更新,全部是我与朋友共同制作的。...