
Absichtlich verwundbares Python-Lab, das unsichere YAML-Deserialisierung demonstriert, die zur Codeausführung führt, mit drei Schwierigkeitsstufen, Exploit-Skripten, Hinweisen und einer gepatchten Vergleichs-App.
Ein absichtlich verwundbares, nur lokal ausgeführtes Python-Labor zum Erlernen davon, wie unsichere YAML-Deserialisierung zu einem Code-Ausführungspfad werden kann. Es enthält drei Schwierigkeitsstufen, eine gepatchte Vergleichs-App, Exploit-Skripte, Hinweise, Write-ups und ein kleines Scoreboard.
Sicherheit: Führe dieses Projekt nur auf einer wegwerfbaren lokalen Maschine oder in einer isolierten virtuellen Umgebung aus. Setze die Challenge-Apps keinem öffentlichen Netzwerk aus.
| Variante | Fokus |
|---|
| Easy | Direkter verwundbarer Endpunkt und klarer Exploit-Pfad |
| Medium | Köderrouten und ein gefälschter Sanitizer |
| Hard | Versteckte Route, kodierte Payloads und mehrstufiger Flag-Flow |
Das Projekt enthält außerdem:
yaml.safe_load()-Vergleichpython3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
pytest -q
python3 challenge_runner.py start --variant easy
Verwende die README-Dateien der Varianten für den vorgesehenen Challenge-Ablauf. Die Apps binden standardmäßig an localhost und benötigen kein Docker.
Die verwundbaren Varianten verwenden absichtlich einen YAML-Loader, der Python-Objekte verarbeiten kann, auf angreiferkontrollierten Eingaben:
yaml.load(data, Loader=yaml.Loader)
Die Vergleichsimplementierung verwendet den sichereren Loader:
yaml.safe_load(data)
Verwende yaml.Loader niemals für nicht vertrauenswürdiges YAML in einer echten
Anwendung. Dieses Labor dient ausschließlich defensivem Training und
autorisiertem Testen.
Veröffentlicht unter der MIT License.