Die Box "Appointment" ist eine Webanwendung, die eine SQL-Injection-Schwachstelle aufweist. Ziel ist es, durch Ausnutzung einer SQL-Injection auf eine Datenbank zuzugreifen, die verschiedene Informationen speichert, je nach Berechtigungslevel des Nutzers.
Schritt 1: Enumeration
Zuerst erfolgt eine grundlegende Enumeration des Systems mittels nmap, um offene Ports zu identifizieren.
Nur Port 80 ist offen, auf dem eine Apache-HTTP-Server-Version läuft.
Schritt 2: Verzeichnis-Bruteforce mit Gobuster
Um weitere Informationen zu erhalten, führen wir einen Verzeichnis-Bruteforce mit Gobuster durch. Das Ziel ist es, versteckte Verzeichnisse der Webanwendung zu finden.
Installation von Gobuster (falls noch nicht vorhanden):
Da wir keine nützlichen Verzeichnisse gefunden haben, versuchen wir eine SQL-Injection auf der Login-Seite.
Login-Seite analysieren: Die Login-Seite könnte anfällig für SQL-Injections sein, insbesondere bei ungeschützter Verarbeitung der Eingabefelder für Benutzername und Passwort.
SQL-Injection nutzen: Geben Sie in das Login-Feld den folgenden Payload ein, um die SQL-Abfrage zu manipulieren:
Benutzername: admin' #
Passwort: abc123 (oder beliebiger Text, da die Passwortprüfung übersprungen wird)
Hintergrund: Die Eingabe admin' # schließt die SQL-Abfrage ab und kommentiert den Rest aus, sodass die Passwortüberprüfung umgangen wird.
PHP-Code-Vulnerabilität:
Die Eingabe führt dazu, dass der password-Teil ignoriert wird, und somit wird lediglich geprüft, ob der Benutzername admin existiert.
Schritt 4: Foothold erlangen
Nachdem die SQL-Injection erfolgreich war, sind wir eingeloggt und haben Zugriff auf administrative Funktionen.
SQL-Injection Code:
Erwarteter Output: Zugriff auf die Verwaltungsoberfläche ohne gültige Zugangsdaten.