Java反序列化
概念
序列化和反序列化的区别
- 序列化:把Java对象转换为字节序列的过程
- 反序列化:把字节序列转化为Java对象的过程
出现点
功能特性
- 反序列化操作一般应用在导入模板文件、网络连通、数据传输、日志格式化存储、对象数据落磁盘或DB存储等业务场景,因此审计过程应重点关注这些功能模块
数据特性
- 一段数据以
rO0AB开头,基本可以确定是JAVA序列化base64加密的数据 - 以
aced开头,是java序列化数据的16进制
- 一段数据以
- 具体出现
- 网络通信:RMI、JMX、JMS、RPC框架(如Dubbo)或使用原生Java序列化协议的Socket通信。
- Web应用:通过HTTP请求参数、Cookie、Session(
HttpSession存储于文件或Redis)传入并反序列化用户可控的对象。 - 缓存与持久化:从文件系统或缓存(如Redis、Ehcache)读取序列化对象(
.ser文件或字节流)。 - 第三方组件:使用了存在不安全反序列化漏洞的第三方库(如Apache Commons Collections, Spring, Fastjson等)。
利用
Ysoseria集成的jar配合生成、特性的专业漏洞利用工具等
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小chen妙妙屋!
评论




