sqlmap
SQLMap – Übersicht und Anwendung im Pentest
SQLMap ist ein Open-Source-Tool zur automatisierten Erkennung und Ausnutzung von SQL-Injection-Schwachstellen (SQLi) in Webanwendungen. Es unterstützt viele Techniken (z. B. Union-Based, Time-Based Blind) und alle gängigen Datenbanksysteme.
Wann und warum SQLMap verwenden?
SQLMap ist besonders nützlich, wenn:
du eine URL oder einen HTTP-Parameter findest, der auf Benutzereingaben reagiert (z. B.
id=,search=,user=,item=).du bereits vermutest, dass SQL-Injection möglich ist, aber die Schwachstelle nicht direkt sichtbar ist.
du keine Zeit hast, alle SQLi-Techniken manuell durchzuspielen.
du systematisch und automatisiert Datenbanken, Benutzerdaten oder OS-Zugriff erhalten willst.
Einstieg: Parameter über URL testen
sqlmap -u "http://zielseite.com/product.php?id=1"Warum?
Weil die URL einen Parameter (id=1) enthält, der sich möglicherweise auf eine Datenbankabfrage auswirkt.
Suchfunktionen gezielt testen
Warum?
Suchfelder senden oft GET-Parameter wie search=, query=, s=, die direkt in SQL-Abfragen eingebunden werden – ein häufiger Angriffsvektor. Der Platzhalter test hilft SQLMap beim Vergleich zwischen legitimen und manipulierten Anfragen.
POST-Anfragen testen (Formulare, Logins)
Wann verwenden? Wenn eine Webseite Daten per Formular sendet (POST-Methode) – etwa bei Logins oder Kommentarfeldern.
Warum?
SQLi funktioniert auch in POST-Parametern. Mit --data simulierst du die POST-Anfrage, -p gibt an, welcher Parameter getestet werden soll.
Time-Based Blind SQLi
Was ist das?
Eine Technik, bei der Verzögerungen (z. B. SLEEP(5)) in der Datenbankantwort erzeugt werden, um zu erkennen, ob SQL-Injection möglich ist – auch wenn es keine sichtbare Ausgabe gibt.
Wann verwenden? Wenn die Anwendung keine Fehlermeldungen oder Ergebnisse zurückgibt, aber du vermutest, dass SQLi existiert (z. B. API-Endpunkte oder JSON-Anfragen).
Union-Based SQLi
Was ist das?
Eine direkte SQL-Injection, bei der UNION SELECT verwendet wird, um zusätzliche Daten in die normale Seite einzuschleusen.
Wann verwenden? Wenn die Anwendung Fehler oder Daten in der Seite darstellt, lässt sich mit Union-Based SQLi schnell viel extrahieren.
Authentifizierte Angriffe
Warum? Einige SQLi-Schwachstellen sind nur nach Login sichtbar. SQLMap kann mit einem gültigen Cookie (z. B. aus Burp) die Session übernehmen.
OS-Befehle über die Datenbank
Wann funktioniert das?
Wenn die Datenbank Zugriff auf das Betriebssystem hat (z. B. xp_cmdshell bei MSSQL oder sys_exec() bei PostgreSQL).
Warum? Zur Eskalation von SQLi in vollen Systemzugriff (z. B. um Reverse Shells zu legen).
Siehe: Bash Shells
Datei lesen und schreiben
Wann sinnvoll? Wenn du über SQLi auf das Dateisystem zugreifen willst (z. B. um Konfigurationsdateien oder SSH-Keys zu lesen, oder Webshells hochzuladen).
Zusammenfassung: SQLMap gezielt einsetzen
Datenbanken erkennen
--dbs
Tabellen & Spalten anzeigen
--tables, --columns
Inhalte extrahieren
--dump
POST-Felder testen
--data="..." -p param
Nur Blind SQLi (z. B. Time-Based)
--technique=T
Nur Union-Based SQLi
--technique=U
Session übernehmen
--cookie="name=wert"
OS-Befehle oder Shell
--os-cmd="ls", --os-shell
Dateien lesen/schreiben
--file-read=, --file-write=, --file-dest=
Wenn du willst, kann ich daraus auch eine GitBook-kompatible Markdown-Datei erzeugen oder die Seite modular aufteilen (Grundlagen, Authentifizierung, Blind SQLi usw.). Sag einfach Bescheid.
Last updated