0x01 前言

在我们正式学习Java 反序列化漏洞之前,我们先来简单的了解一下,如何在实战中去查找反序列化入口吧

0x02 Java 反序列化入口

全局搜索的时候遇到下面这些查看一下是否外部可控如果外部可控
那就说明这个这是个好入口,可以深入尝试反序列化漏洞攻击

入口点(点号前面是类,后面是方法) 简单说明
ObjectInputStream.readObject Java原生库
ObjectInputStream.readUnshared Java原生库
XMLDecoder.readObject Java原生库
JSON.parseObject Fastjson库,反序列化
Yaml.load Yaml库,反序列化
XStream.fromXML XStream库,反序列化
ObjectMapper.readValue Jackson库,反序列化
com.mysql.cj.jdbc.result.ResultSetImpl.getObject() MySQL库,JDBC反序列化

查找到入口点以后可以查看一下是否引入了高危的架包
例如: Apache Commons Collections库等等…
如果引入了危险库,则使用ysoserial进行攻击
如果没有就尝试通过该系统挖一个反序列化链子出来