CC1番外
该笔记是记录观看b站白日梦组长Java反序列化CommonsCollections篇(一) CC1链手写EXP_哔哩哔哩_bilibili的记录,大佬牛逼!!!
初学者(比如我),建议反复刷该视频。
环境搭建
JDK:8u65
Maven:3.6.2
<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
这里有一个坑,就是我们需要添加sun包,因为我们打开源码,很多地方的文件是 .class 文件,都是反编译代码,我们很难读懂,所以需要需要从网上下载 .java 文件。
下载地址是这个:http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/af660750b2f4
下载zip文件,解压
复制下面sun包,注意目录
复制到jdk目录下
接着需要在idea里面,导入
我们随便点开sun目录下,发现是java文件,至此可以调试了。
链子分析
首先回顾一下反序列化漏洞的攻击思路:
入口类这里,我们需要一个 readObject
方法,结尾这里需要一个能够命令执行的方法。我们中间通过链子引导过去。所以我们的攻击一定是从尾部出发去寻找头的,流程图如下:
我们知道宇宙万法的那个源头就是Transformer
接口