漏洞
不安全反序列化
别称: 不安全的反序列化, 对象反序列化漏洞
定义
应用对不可信数据进行反序列化的漏洞,攻击者可借此实例化任意对象,常常实现远程代码执行。
当应用把序列化数据(Java/PHP/Python/.NET 的二进制格式、YAML 或带类型元信息的 JSON)还原为对象时,反序列化器可能调用构造函数、魔术方法或 gadget 链。在输入不可信的情况下,攻击者构造的 payload 会在反序列化过程中触发危险行为,导致 RCE、认证绕过、文件写入或 DoS。Apache Commons Collections(Java)、Pickle(Python)、.NET BinaryFormatter 等库中的 gadget 链曾引发重大事件。防御措施包括完全避免对不可信数据反序列化、使用无类型恢复的格式(显式 schema 的纯 JSON)、对序列化数据签名、对可反序列化类型采用白名单,并保持运行时更新。
示例
- Java 应用对会话 Cookie 反序列化,classpath 中存在 Commons Collections,导致 RCE。
- Python 服务对用户控制的字节运行 pickle.loads。
相关术语
原型链污染
JavaScript 漏洞,攻击者通过不可信输入修改 Object.prototype,向所有对象注入属性,从而改变应用行为甚至导致 RCE。
批量赋值漏洞
应用将客户端提交的请求字段盲目绑定到内部对象属性,导致攻击者能写入本不应控制的字段的漏洞。
远程访问木马(RAT)
一种使攻击者能够隐蔽、交互式地控制受感染设备的恶意软件,类似于隐藏的远程管理工具。
Command Injection
Command Injection — definition coming soon.
访问控制失效
授权规则缺失或执行不当,使用户能够执行超出其权限的操作或访问越权数据的一类漏洞。
OWASP Top 10
OWASP Top 10 — definition coming soon.