本文是博主的第一篇原创文章,同时博主也是边学java边进行分析的,如有知识性错误或逻辑性问题,希望大家多多批评
这条链是小菜鸡很久之前分析的一条链了,但当时没有写博客,这段时间有空了才来写,所以导致有一些技术细节可能讲的没有到位,因而导致文中有一些地方讲的不是很清楚或有些问题,欢迎大家在评论区或私信批评、交流。如果有什么不懂的,也可以看一下参考的四个链接,讲的都非常的好。
前言
本文主要分析CC1利用链,先介绍了复现环境的搭建(该小节尽量帮大家避避坑,呜呜呜);然后紧跟着讲解了java反序列化和php反序列化漏洞的区别(希望大家不要有惯性思维认为反序列化漏洞都一样,其实java反序列化和php反序列化的差别还是很大的);并介绍了复现学习java反序列化漏洞所需的一些前置知识;最后,也是文章的主体部分,从Sink(即可以触发执行命令的方法等)、chain及source(即利用链的入口点)三个步骤,讲述利用链的构建。
一、环境搭建
- JDK版
本次复现是使用的jdk版本为jdk1.8.0_65**。**
官网下载地址为:https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html。
注:从官网上下载时,下载的包一直不匹配,明明点的是8u65,但它一直显示其他版本,解决该问题的方法是将路径中的/cn给删掉,就可以正常下载了。

下载完毕后进行安装,然后就需要对IDEA进行配置:
(1) 首先点击File,然后又点击Project Structure:

(2) 然后点击SDKs,将下载的jdk添加到该项目中:

2. CommonsCollections版本为3.2.1**。**
(1) 配置Maven依赖,下载CommonsCollections3.2.1版本,只需将下述配置添加到pom.xml中即可:
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>

(2) 后再Download Sources即可:

3. 下载相应源码
(1) 后续分析中需要用到sun包下的AnnotationInvocationHandler类文件,但是默认自带的是.class文件,源码是反编译出来的,不方便阅读,因此为了方便调试,需要将其转换为.java文件,需要我们安装源码,下载地址为:https://hg.openjdk.org/jdk8u/jdk8u/jdk/rev/af660750b2f4,下载左侧的zip文件即可。

(2) 然后解压,进入到相应JDK的文件夹中,里面本来就有个src.zip的压缩包,我们解

最低0.47元/天 解锁文章
7788





