不安全的反序列化


文档摘要

不安全的反序列化 序列化是将对象转换为一种数据格式的过程,这种格式可以在稍后恢复。人们经常对对象进行序列化,以便将其保存到存储中,或作为通信的一部分发送出去。反序列化则是这一过程的逆向操作——从某种格式的数据中重建对象——OWASP 摘要 反序列化标识符 POP 工具 实验环境 参考文献 反序列化标识符 请参阅位于其他章节中的以下子部分: Java 反序列化:ysoserial 等 PHP(对象注入):phpggc 等 Ruby:通用 RCE 工具等 Python:pickle、PyYAML 等 .NET:ysoserial.net 等 对象类型 | 头部(十六进制) | 头部(Base64) | 指示符 .

不安全的反序列化

序列化是将对象转换为一种数据格式的过程,这种格式可以在稍后恢复。人们经常对对象进行序列化,以便将其保存到存储中,或作为通信的一部分发送出去。反序列化则是这一过程的逆向操作——从某种格式的数据中重建对象——OWASP

摘要

反序列化标识符

请参阅位于其他章节中的以下子部分:

对象类型 头部(十六进制) 头部(Base64) 指示符
.NET ViewState FF 01 /w 常见于 HTML 表单周围的隐藏输入中
BinaryFormatter 0001 0000 00FF FFFF FF01 AAEAAAD Base64 解码并检查长序列 FF FF FF FF
Java Serialized AC ED rO Base64 解码并检查前几个字节。
PHP Serialized 4F 3A Tz 前缀如 O:, a:, s:, i:, b: 和长度指示符。
Python Pickle 80 04 95 gASV 文本:操作码如 (lp0, S'Test'
Ruby Marshal 04 08 BAgK Base64 解码并查找开头的 \x04\x08

POP 工具

POP(面向属性编程)工具是应用程序类实现的一段代码,可在反序列化过程中被调用。

POP 工具的特征:

  • 可以被序列化
  • 具有公共/可访问的属性
  • 实现了特定的易受攻击的方法
  • 可访问其他“可调用”的类

实验环境

参考文献

免责声明
本文件由基于人工智能的机器翻译服务翻译而成。尽管我们力求翻译准确,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言版本的文件为准。对于关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


发布者: 作者: 转发
评论区 (0)
U