
Verwundbare Python-Anwendung zum Erlernen sicherer Entwicklung
Vulpy ist eine Webanwendung, die in Python / Flask / SQLite entwickelt wurde und zwei Gesichter hat.
GUT: Versucht, mit sicheren Entwicklungspraktiken zu programmieren.
SCHLECHT: Versucht, so zu programmieren, wie (möglicherweise) du. :p
Es wurde als Labor für die folgenden Kurse entwickelt:
Sichere Entwicklung von Securetia (https://www.securetia.com/cursos.html) Sichere Entwicklung von EducaciónIT (https://www.educacionit.com/curso-de-desarrollo-seguro)
Aber du kannst es nach Belieben nutzen (MIT-Lizenz)
Die „GUT“-Version (noch nicht fertig) wird dem OWASP ASVS entsprechen:
https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project
Dies wird es ermöglichen zu lernen, wie man Python-Code gemäß den besten Sicherheitspraktiken entwickelt.
::
git clone https://github.com/fportantier/vulpy
cd vulpy
pip3 install --user -r requirements.txt
Einige der in der „SCHLECHT“-Version vorhandenen Sicherheitslücken:
Hinweis: Die „GUT“-Version (noch nicht fertig) soll keine Sicherheitslücken haben, aber ich bin ein Mensch, also …
Sowohl die „SCHLECHT“- als auch die „GUT“-Version erfordern eine Initialisierung der Datenbank.
Dies geschieht mit dem Skript „db_init.py“ in jedem der Verzeichnisse (bad und good).
Jede Version hat ihre eigenen SQLite-Dateien für Benutzer und Beiträge.
Die Ausführung des Skripts erfolgt zum Beispiel:
::
cd bad ./db_init.py
Nach der Datenbankinitialisierung werden drei Benutzer erstellt:
::
Username Password
admin SuperSecret elliot 123123123 tim 12345678
Du kannst dich mit jedem Benutzer anmelden, die Anwendung hat kein Berechtigungssystem, daher haben alle drei die gleichen Berechtigungen.