0x01 前言

在真正学习反序列化漏洞利用链之前,一定要说这个里程碑式的工具 ysoserial

ysoserial 这个工具可以让用户可以根据需要选择利用链生成反序列化利用数据,然后通过将这些数据发送给目标,从而执行用户预先定义的命令

利⽤链也叫“gadget chains”, 通常都称为“gadget”
我也不知道为什么会叫这个,但是人人都这么叫,所以我也这么叫

ysoserial 的使用非常非常简单,甚至可以说是无脑了

使用方法如下所示:

  1. 查看帮助:
  2. java -jar ysoserial-[version]-all.jar
  3. 利用命令:
  4. java -jar ysoserial-[version]-all.jar [payload] "[command]"
  5. 例子:
  6. java -jar ysoserial-[version]-all.jar CommonsCollections1 "whoami"

可以看的出来 ysoserial 想调用“gadget”那就只需要在 [payload] 处替换成对应的链子名称即可
比如我这里调用的是 CommonsCollections1 链子, 执行的命令是 whoami
如果目标存在反序列化漏洞,并满足这条链子对应的条件, 那么我发送这个生成好的POC给目标,目标则执行该命令

简单的介绍就到这里了,各种分析与利用就放后面的文章吧
本文就关注于如何将这个优秀的工具下载下来,并且编译运行成功
向学习反序列化漏洞利用链开启第一炮

0x02 下载源码

下载地址主页: https://github.com/frohoff/ysoserial
下载地址: https://github.com/frohoff/ysoserial/tags 下载一个最新的tags即可

如果觉得下载太慢或是想要直接编译好的环境那也可以下载下面的附件
ysoserial-0.0.5-源码.zip.pdf
ysoserial-0.0.5-all.jar-编译完毕的.zip.pdf
下载完毕以后把pdf改成zip即可

还是推荐和作者一起实操一遍,会比较好一些

0x03 idea环境

  1. java版本:
  2. java version "1.8.0_271"
  3. Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

0x04 使用idea安装ysoserial环境

image.png
image.png
image.png
image.png

导入完毕以后进入 ysoserial 目录,里面有个 pom.xml 文件,打开它

  1. // 在pom.xml文件里面添加这个下载这个jar包,防止项目爆的一个错误
  2. <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
  3. <dependency>
  4. <groupId>commons-io</groupId>
  5. <artifactId>commons-io</artifactId>
  6. <version>2.2</version>
  7. </dependency>

image.png
然后因为这是一个Maven项目所以会自动下载对应的jar包,等待自动下载完毕即可

如果下载没成功,那就点击这里重新下载
image.png

全部jar包下载完毕以后,找到 GeneratePayload 这个文件并打开它,试试看是否能正常运行
image.png

0x05 编译ysoserial

image.png
image.png
image.png