一个故意存在漏洞的、仅限本地运行的 Python 实验环境,用于学习不安全的 YAML 反序列化如何演变为代码执行路径。它包含三个难度级别、一个已修复的对比应用、漏洞利用脚本、提示、分析报告以及一个小型计分板。
安全提示: 仅在一次性本地机器或隔离的虚拟环境中运行此项目。请勿将挑战应用暴露在公共网络上。
该项目还包括:
yaml.safe_load() 对比python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
pytest -q
python3 challenge_runner.py start --variant easy
请使用各变体的 README 文件了解预期的挑战流程。应用默认绑定到 localhost,且不需要 Docker。
存在漏洞的变体故意对攻击者可控的输入使用支持 Python 对象的 YAML 加载器:
yaml.load(data, Loader=yaml.Loader)
对比实现则使用更安全的加载器:
yaml.safe_load(data)
切勿在真实应用中对不受信任的 YAML 使用 yaml.Loader。本实验环境仅用于防御性培训和授权测试。
基于 MIT 许可证 发布。