
Намеренно уязвимая лаборатория на Python, демонстрирующая небезопасную десериализацию YAML, приводящую к выполнению кода, с тремя уровнями сложности, эксплойт-скриптами, подсказками и исправленным приложением для сравнения.
Намеренно уязвимая локальная лаборатория на Python для изучения того, как небезопасная десериализация YAML может превратиться в путь выполнения кода. Она включает три уровня сложности, исправленное приложение для сравнения, эксплойт-скрипты, подсказки, разборы и небольшое табло.
Безопасность: Запускайте этот проект только на одноразовой локальной машине или в изолированной виртуальной среде. Не выставляйте приложения-задания в публичную сеть.
| Вариант | Направленность |
|---|
| Easy | Прямой уязвимый эндпоинт и очевидный путь эксплуатации |
| Medium | Обманные маршруты и поддельный санитайзер |
| Hard | Скрытый маршрут, закодированные полезные нагрузки и многоэтапный поток получения флага |
Проект также включает:
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.
Уязвимые варианты намеренно используют YAML-загрузчик, поддерживающий объекты Python, на управляемых злоумышленником входных данных:
yaml.load(data, Loader=yaml.Loader)
В реализации для сравнения используется более безопасный загрузчик:
yaml.safe_load(data)
Никогда не используйте yaml.Loader для недоверенного YAML в реальном приложении. Эта лаборатория предназначена только для защитного обучения и авторизованного тестирования.
Выпущено под MIT License.