YSoNet 为授权安全研究生成 .NET 反序列化载荷, 提供交互式向导和命令行,便于重复性工作。
YSoNet 是 ysoserial.net 的分支, 由 Alvaro Munoz (@pwntester) 创建,并建立在其 贡献者的工作之上。YSoNet 由 Soroush Dalili (@irsdl) 维护。
下载最新版本, 然后按照入门指南解压 完整的 ZIP 并打开向导。该指南涵盖 Windows/运行时要求、 安装诊断和开发构建。
YSoNet 是一组实用工具和面向属性编程的“gadget 链”, 用于研究不安全的 .NET 对象反序列化。提供模块所需的输入, 选择兼容的格式化器,并保存生成的数据。目标端效果 取决于链、运行时和应用程序;请参阅用法和示例 和运行时证据。
漏洞在于应用程序执行了不安全的反序列化,而不是类路径上存在 gadget。本项目受 Chris Frohoff 的 ysoserial 项目启发。
不要将 YSoNet 的 gadget 和插件目录变成反序列化阻止列表。该 目录无法包含所有私有的、未来的、特定于应用程序的或不同 组合的链,因此阻止此处列出的内容并不能使不安全的反序列化器 变得安全。它可能造成虚假的安全感,而只是延迟攻击。
如果您正在审查此仓库以加固应用程序,请在检查 gadget 或插件之前阅读 面向防御者和审查者的安全指南。目标是移除不安全的反序列化,或转向 固定模式、仅数据的设计。当无法立即迁移时,严格的允许列表是临时的遏制措施; 拒绝列表不是补救措施。
完整文档位于 docs/:
./ysonet.exe -f Json.Net -g ObjectDataProvider -o raw -c "calc" -t
从快速参考开始。使用 ysonet.exe --fullhelp 查看所有选项,使用 -g NameHere -help 或 -p NameHere -help 查看每个 gadget 或每个插件的帮助。更多内容见用法和示例。
每次构建都会在
ysonet.exe 旁边附带可移植的 Agent Skill,位于
.claude/skills/ysonet-payloads/。当 Claude Code 从解压的二进制文件夹中工作时,会发现该
项目技能。其他兼容 Agent Skills 的客户端可以导入同一文件夹。
该技能涵盖命令行、交互模式、每个公共 gadget 和插件、
它们的格式化器、变体和选项,以及目标驱动的载荷选择工作流。
它使用正在运行的二进制文件的 --list、模块帮助和 --fullhelp 作为实时
事实来源。二进制文件夹中不需要生成的 CLAUDE.md;那将是
Claude 特定的第二份指令副本,可能会与标准技能产生偏差。
使用构建和测试了解 Windows 工具链、构建命令、CLR2 宿主和 Release 转换。如需更小的 克隆,请遵循不含归档的源代码。
构建和测试解释了自动 Debug 检查、可选的 FULL 套件、运行时效果覆盖和环境 限制。在选择测试层级之前请阅读它。
使用 PowerShell 补全进行会话设置、 永久 PowerShell 7 安装、状态查看和移除。补全会从正在运行的工具中读取模块 和格式化器名称。
本软件纯粹出于学术研究和开发有效防御技术的目的而创建,除明确授权外,不应用于攻击系统。项目维护者不对软件的滥用负责或承担责任。请负责任地使用。
本软件是个人项目,与任何公司无关,包括项目所有者及贡献者的雇主。
Fork irsdl/ysonet,从 master 分支,并
遵循 CONTRIBUTING.md 进行更改和拉取请求。
架构指南解释了如何添加 gadget、插件和
序列化器。绝不要为了让测试通过而削弱测试。
特别感谢 Alvaro Munoz (@pwntester),
ysoserial.net 的创建者,以及
两个项目的贡献者。YSoNet 由
Soroush Dalili (@irsdl) 开发和维护。有关致谢,请参阅致谢,
或运行 ysonet.exe --credit 查看 gadget 和插件致谢。
有关底层研究,请参阅参考资料。
YSoNet 根据 MIT 许可证授权。该许可证保留了 原始 ysoserial.net 中 Alvaro Muñoz 的版权声明以及 YSoNet 中 Soroush Dalili 的版权 声明。两份声明和 MIT 许可声明必须保留在 软件的所有副本或实质性部分中。