PHP Applikation zur Notenverwaltung von Studenten auf Basis von Laravel.
Achtung, diese Applikation wurde für ein CTF entwickelt, es existieren absichtlich Sicherheitslücken!
- 1 - Link zu MySQL Admin Webinterface in robots.txt
- 2 - MySQL Interface mit sehr einfachem Passwort (root:toor) gesichert
- 3 - XSS in Profilfeldern
- 4 - SQL Injection über Notensharing Funktion
- 5a - Controller zum Update der User nicht geschützt, User können beliebig durch POST/PUT geändert werden (inkl. Gruppe)
- 5b - Tatsächliche Veränderung der Gruppe durch nicht-privilegierten User
- Keine sensiblen URLs über robots.txt preisgeben. Noch besser: robots.txt gar nicht benutzen und Crawler mit dem Webserver über die User-Agenten blocken.
- Wenn SQL-Webinterface verwendet wird, dieses mit einem sicheren Passwort, Captcha und Rate-limiting absichern. Optimal: Tunnel vom Entwickler direkt zum MySQL Server über SSH mit publickey aufbauen.
- Eingaben der Nutzer nur nach vorherigem Escape ausgeben. Mit Laravel im View:
{{ $wert }}
- Für SQL-Abfragen mit Inhalten von Anwendern Prepared Statements verwenden. Mit Laravel im Controller:
DB::table('tabelle')->where('zeile', '=', $wert)->get();
- Rollen- bzw. Rechteüberprüfung nicht nur in Views, sondern auch im Controller. Mit Laravel über Middleware im Controller.