用途:面向渗透测试的不安全反序列化漏洞利用方法论,当发现 Base64 编码的 Cookie/参数、Python pickle 数据、PHP serialized 字符串(O:4:...)或 Java serialized 数据(rO0AB...)时使用,目标是获取 RCE。
主要能力:
- 检测入口:常见位置包括 Cookie 值、POST Body、Hidden 表单字段(viewstate)、API 参数、文件上传;通过 Magic Bytes 识别格式,如 Python Pickle 的 \x80 开头或含 cos\n、PHP 的 O:4:"User":2:{ 或 a:N:{、Java 的 \xac\xed\x00\x05 或 Base64 rO0AB 开头;检查 Content-Type(application/x-python-pickle、application/x-java-serialized-object)及错误信息关键字(pickle、unserialize、ObjectInputStream)。
- Python Pickle RCE:用 reduce 调用 os.system 或 subprocess.check_output;回显、写文件到 Web 路径、HTTP 外带三种策略;注意 reduce 只能返回(模块级函数, 参数元组),self.method 会失败;注意 Python 2/3 协议差异,可能需 protocol=2。
- PHP 反序列化:识别序列化字符串、Type Juggling(b:1 松散比较绕过)、修改属性值(长度前缀需匹配)、构造 POP Chain、使用 phpggc 生成利用链,常见框架 gadget 含 Laravel、Symfony、WordPress。
- Flag 获取:cat /flag.txt、find / -name "flag"、env | grep -i flag、写文件到 Web 路径、DNS/HTTP 外带、查数据库配置。
使用方式:按 Phase 1 检测入口、Phase 2 Pickle、Phase 3 PHP、Phase 4 Flag 获取的顺序推进;深入内容见 references 下的 pickle-payload-templates.md、blind-exploitation.md、php-deserialization.md、dotnet-deserialization.md。
适用场景:授权渗透测试与安全评估中遇到反序列化入口时。
限制:仅限合法授权测试;具体命令与 payload 需按目标环境调整;资料未提供 .NET 利用的详细步骤与工具用法,仅列出参考文件。