反序列化攻击
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/deserialization-lr-nf68 到当前 AI 助手。
技能介绍
为什么需要这份检查清单
不安全反序列化的问题不在于“解析数据”本身,而在于对象重建过程会执行框架或业务代码。攻击者可能把 ObjectInputStream、pickle、PHP 序列化字符串或 .NET 序列化载荷送到接收端;一旦存在可到达的 sink,输入就不再只是数据,而可能变成命令执行、文件操作、SSRF 或权限提升。不同语言和框架的入口差异很大,凭零散经验容易漏掉真实风险。
技能如何组织工作
这个技能把测试过程整理成可执行清单:先加载完整方法论,按顺序推进;除非用户明确指定,否则不跳步。每一步都会先判断当前 target/context 是否适用,再给出对应技术。它会跟踪已完成的 checklist 项,并基于发现建议下一步。
核心能力包括:识别 deserialization sinks;处理 Java、PHP、.NET、Python 的反序列化利用;使用 ysoserial gadget chains;分析魔术方法/魔术函数滥用;以及在测试中考虑 detection evasion。常见触发点包括 deserialization、ysoserial、gadget chain、ObjectInputStream、pickle 等关键词。
适用边界与注意点
该技能适合授权的反序列化端点测试和漏洞验证,不适合当作绕过所有防护的通用武器。ysoserial 的 gadget chain 通常依赖具体语言、库版本、类路径和运行配置;PHP 魔术方法、.NET 反序列化格式、Python pickle 行为都不同,需要先确认 sink 再选择 payload。Detection evasion 也只能在真实目标上验证,不能默认成功。测试前应限定范围,保存请求和响应证据,并避免在未授权环境执行破坏性命令。
使用场景
- 渗透测试 Java 反序列化端点,确认 `ObjectInputStream` sink 并选择 `ysoserial` gadget chain。
- 审计 PHP 反序列化入口,判断魔术方法是否被用于对象重建或逻辑滥用。
- 验证 Python `pickle` 接收点,评估不可信输入是否能触发反序列化利用。
- 在授权测试中覆盖 .NET 反序列化路径,记录可利用性并尝试检测规避。
适合人员
- 应用安全工程师:需要在授权范围内验证反序列化 sink、gadget chain 和利用链适用性。
- 后端开发工程师:负责修复 Java/PHP/.NET/Python 服务的不可信反序列化入口。
- 漏洞研究员:关注语言运行时、库版本和魔术方法/魔术函数在对象重建中的行为。
- 安全测试工程师:使用检查清单按步骤测试反序列化端点并沉淀检测证据。