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进行攻击
如果没有就尝试通过该系统挖一个反序列化链子出来