Sqlmap ist ein Open-Source SQL-Injection Tool für Penetrationstester, welches nicht nur bei der Erkennung, sondern auch der Ausnutzen von SQLi Lücken hilft. Die folgende Liste bietet eine deutschsprachige Übersicht aller Optionen und Parameter.
Verwendung
Verwendung: python sqlmap.py [Optionen]
Optionen:
-h, --help Grundlegende Hilfe anzeigen und beenden
-hh Erweiterte Hilfe anzeigen und beenden
--version Versionsnummer des Programms anzeigen und beenden
-v VERBOSE Ausführlichkeitslevel: 0-6 (Standardmäßig 1)
Ziel:
Mindestens eines der folgenden Parameter muss angegeben werden, um das Ziel zu definieren
-d DIRECT Verbindungs-String für direkte Datenbankverbindung
-u URL, --url=URL Ziel URL (z.B. "http://www.site.com/vuln.php?id=1")
-l LOGFILE Ermittle Ziele aus Burp oder WebScarab Proxy Log Datei
-x SITEMAPURL Ermittle Ziele aus remote sitemap(.xml) Datei
-m BULKFILE Lade Ziele aus einer Textdatei
-r REQUESTFILE Lade HTTP request aus einer Datei
-g GOOGLEDORK Verwende Google Dork Ergebnisse als Ziel-URLs
-c CONFIGFILE Lade Optionen aus einer Konfigurations INI Datei
Request:
Mit diesen Optionen können Sie angeben, wie die Verbindung zur Ziel-URL hergestellt werden soll
--method=METHOD Erzwinge Verwendung einer bestimmten HTTP-Methode (z.B. PUT)
--data=DATA Daten, die über POST gesendet werden soll
--param-del=PARA.. Zeichen zum Teilen von Paramtern (Standardmäßig: ",")
--cookie=COOKIE HTTP Cookie Inhalt
--cookie-del=COO.. Zeichen zum Teilen von Cookies (Standardmäßig: ";")
--load-cookies=L.. Datei mit Cookies im Netscape- / wget-Format
--drop-set-cookie Ignoriere Set-Cookie Anweisungen
--user-agent=AGENT Verwendende spezifizierten HTTP User-Agent
--random-agent Verwendende zufälligen HTTP User-Agent
--host=HOST Verwendende spezifizierten HTTP Host
--referer=REFERER Verwendende spezifizierten HTTP Referer
-H HEADER, --hea.. Zusätzlicher Header (z.B. "X-Forwarded-For: 127.0.0.1")
--headers=HEADERS Zusätzliche Header (z.B. "Accept-Language: fr\nETag: 123")
--auth-type=AUTH.. HTTP Authentifizierungstyp (Basic, Digest, NTLM oder PKI)
--auth-cred=AUTH.. HTTP Authentifizierungsdaten (Name:Passwort)
--auth-file=AUTH.. PEM cert/private Key Datei für HTTP Authentifizierung
--ignore-code=IG.. Ignoriere HTTP Fehlercode (z.B. 401)
--ignore-proxy Ignoriere Standard Proxy Einstellungen des Systems
--ignore-redirects Ignoriere Umleitungsversuche
--ignore-timeouts Ignoriere Verbindungstimeouts
--proxy=PROXY Verwende Proxy zum Verbinden zur Ziel URL
--proxy-cred=PRO.. Proxy Authentifizierungsdaten (Name:Passwort)
--proxy-file=PRO.. Lade Proxy-Liste aus Datei
--tor Verwende Tor Anonymisierungsnetzwerk
--tor-port=TORPORT Verwende alternativen Tor Port
--tor-type=TORTYPE Tor Proxy Typ (HTTP, SOCKS4 oder SOCKS5 (Standard))
--check-tor Prüfe, ob Tor richtig verwendet wird
--delay=DELAY Verzögerung (Sekunden) zwischen jeder HTTP-Anfrage
--timeout=TIMEOUT Wartezeit bis zum Timeout. (Standardmäßig: 30 Sekunden)
--retries=RETRIES Anzahl Wiederholungsversuche bei Timeouts (Standardmäßig: 3)
--randomize=RPARAM Verwende zufälligen Wert für den/die angegebenen Parameter
--safe-url=SAFEURL URL-Adresse, die während des Tests wiederholt aufgerufen werden soll
--safe-post=SAFE.. POST Daten, die zur sicheren URL gesendet werden sollen
--safe-req=SAFER.. Lade sicheren HTTP Request aus einer Datei
--safe-freq=SAFE.. Teste Anfragen zwischen zwei Besuchen gegen eine sichere URL
--skip-urlencode Deaktiviere URL-Enkodierung der Payloads
--csrf-token=CSR.. Parameter, welches den anti-CSRF token beinhaltet
--csrf-url=CSRFURL URL aus welcher der anti-CSRF token extrahiert werden soll
--force-ssl Erzwinge Verwendung von SSL/HTTPS
--hpp Verwende "HTTP parameter pollution" Methode
--eval=EVALCODE Führe spezifizierten Python-Code vor jedem Request aus (z.B. "import hashlib;id2=hashlib.md5(id).hexdigest()")
Optimierung:
Mit diesen Optionen können Sie die Leistung von sqlmap optimieren
-o Aktiviere alle Optimierungsoptionen
--predict-output Vorhersage allgemeiner Query-Ausgaben
--keep-alive Verwende persistente HTTP(s) Verbindung
--null-connection Ermittle Seitenlänge ohne HTTP-Antworttext
--threads=THREADS Maximale Anzahl gleichzeitiger HTTP(s) Anfragen (Standardmäßig: 1)
Injection:
Mit diesen Optionen können Sie angeben welche Parameter getestet werden sollen und eigene Payloads oder tampering ("Verschleierung") Skripte definieren.
-p TESTPARAMETER Zu testende(r) Parameter
--skip=SKIP Überspringe Tests für spezifizierte Parameter
--skip-static Überspringe Tests für Parameter, welche nicht dynamisch zu sein scheinen
--param-exclude=.. Regular Expression, um Parameter aus dem Test auszuschließen (z.B. "ses")
--dbms=DBMS Tests auf spezifizisches DBMS (Datenbankmanagementsystem) eingrenzen
--dbms-cred=DBMS.. DBMS Zugangsdaten (Benutzer:Passwort)
--os=OS Tests auf spezifizisches Betriebssystem eingrenzen
--invalid-bignum Verwende große Zahlen, um ungültige Werte für Paramter zu erzielen
--invalid-logical Verwende logische Operationen, um ungültige Werte für Paramter zu erzielen
--invalid-string Verwende zufällige Zeichenketten, um ungültige Werte für Paramter zu erzielen
--no-cast Deaktiviere Payload casting
--no-escape Deaktiviere Escaping Mechanismus
--prefix=PREFIX Zeichenkette, die vorne an die Payload angehängt werden soll
--suffix=SUFFIX Zeichenkette, die hinten an die Payload angehängt werden soll
--tamper=TAMPER Verwende angegebene Scripte zur Verschleierung der Payloads
Erkennung:
Mit diesen Optionen können Sie das Verhalten in der Erkennungsphase konfigurieren
--level=LEVEL Test Stufe/Niveau (1-5, Standardmäßig: 1)
--risk=RISK Test Risiko (1-3, Standardmäßig: 1)
--string=STRING Zeichenkette, welche zu einer positiven Bewertung (True) führen soll
--not-string=NOT.. Zeichenkette, welche zu einer negativen Bewertung (False) führen soll
--regexp=REGEXP Regular Expression, welche zu einer positiven Bewertung (True) führen soll
--code=CODE HTTP-Statuscode, welche zu einer positiven Bewertung (True) führen soll
--text-only Vergleiche Seiten ausschließlich anhand des Textinhalts
--titles Vergleiche Seiten ausschließlich anhand des Seitentitels
Methoden:
Mit diesen Optionen können Sie die SQL-Injection Methoden konfigurieren
--technique=TECH Zu verwendende SQL-Injection Methoden (Standardmäßig: "BEUSTQ")
--time-sec=TIMESEC Anzahl Sekunden zur Verzögerung von DBMS-Antworten (Standardmäßig 5)
--union-cols=UCOLS Maximale Anzahl von Spalten zum Testen von "UNION query" basierten SQL injections
--union-char=UCHAR Zu verwendendes Zeichen zum Bruteforcen der Spaltenanzahl
--union-from=UFROM Tabelle zur Verwendung im FROM Teil der UNION-Abfragen
--dns-domain=DNS.. Die für einen "DNS exfiltration" Angriff zu verwendende Domain
--second-order=S.. Angabe einer alternativen URL, auf der die Ergebnisse angezeigt werden
Fingerprint:
-f, --fingerprint Führe einen umfangreichen Fingerprint zur Ermittlung der DBMS Version aus
Auflistung:
Mit diese Optionen können Sie DBMS Informationen, Struktur und Daten in den Tabellen auflisten oder eigene SQL Befehle ausführen.
-a, --all Alles auflisten
-b, --banner DBMS banner auflisten
--current-user DBMS aktuellen Benutzer auflisten
--current-db DBMS aktuelle Datenbank auflisten
--hostname DBMS server Hostnamen auflisten
--is-dba Prüfen, ob aktueller DBMS Benutzer ein DBA (Datenbankadministrator) ist
--users DBMS Benutzer auflisten
--passwords DBMS Benutzer Passwörter (hashes) auflisten
--privileges DBMS Benutzer Privilegien auflisten
--roles DBMS Benutzerrollen auflistens
--dbs DBMS Datenbanken auflistens
--tables DBMS Datenbank Tabellen auflistens
--columns DBMS Datenbank Tabellenspalten auflistens
--schema DBMS Schemata auflistens
--count Ermittle Anzahl der Tabelleneinträge
--dump Erzeuge Dump für ausgewählte Datenabnk Tabelle
--dump-all Erzeuge Dump für alle Datenbank Tabellen
--search Suche nach Spalten, Tabellen und/oder Datenbank Namen
--comments DBMS Kommentare auflisten
-D DB Zu verwendende DBMS Datenbank
-T TBL Zu verwendende DBMS Tabelle(n)
-C COL Zu verwendende DBMS Tabellenspalte(n)
-X EXCLUDECOL Nicht zu verwendende DBMS Tabellenspalte(n)
-U USER Zu verwendende(r) DBMS Benutzer
--exclude-sysdbs Beim Auflisten von Tabellen System Datenbanken ausschließen
--pivot-column=P.. Pivot Spalten Name
--where=DUMPWHERE Beim Tabellen Dumping zu verwendende WHERE-Bedingung
--start=LIMITSTART Erster aufzulistender Tabelleneintrag
--stop=LIMITSTOP Letzter aufzulistender Tabelleneintrag
--first=FIRSTCHAR Erstes aufzulistende Ausgabezeichen
--last=LASTCHAR Letztes aufzulistende Ausgabezeichen
--sql-query=QUERY Auszuführender SQL Befehl
--sql-shell Starte interaktive SQL Shell (Eingabeaufforderung)
--sql-file=SQLFILE Führe SQL-Befehle aus spezifizierter Datei aus
Brute force:
Diesen Optionen können zur Durchführung von Bruteforce Prüfungen verwendet werden
--common-tables Überprüfe die Existenz von häufig auftretenden Tabellennamen
--common-columns Überprüfe die Existenz von häufig auftretenden Spaltennamen
Injizierung benutzerdefinierter Funktionen:
Diese Optionen können zur Erstellung benutzerdefinierter Funktionen verwendet werden
--udf-inject Eigene Funktion injizieren
--shared-lib=SHLIB Lokaler Pfad der Bibliotheken
Dateisystem Zugriff:
Diese Optionen können verwendet werden, um auf das dem DBMS zugrunde liegende Dateisystem zuzugreifen
--file-read=RFILE Lese Datei aus dem Dateisystem des DBMS
--file-write=WFILE Schreibe lokale Datei in das Dateisystem des DBMS
--file-dest=DFILE Absoluter Dateipfad, in das geschrieben werden soll
Betriebssystem Zugriff:
Diese Optionen können verwendet werden, um auf das dem DBMS zugrunde liegende Betriebssystem zuzugreifen
--os-cmd=OSCMD Führe Betriebssystembefehl aus
--os-shell Interaktive Betriebssystembefehl Shell (Eingabeaufforderung)
--os-pwn Eingabeaufforderung für eine OOB Shell, Meterpreter oder VNC
--os-smbrelay One click Eingabeaufforderung für eine OOB Shell, Meterpreter oder VNC
--os-bof Ausführen eines Stored Procedure Buffer Overflow
--priv-esc Ausführen einer Database Process User Privilege Escalation
--msf-path=MSFPATH Pfad zur lokalen Metasploit Framework Installation
--tmp-path=TMPPATH Absoluter Pfad zum remote Verzeichnis für temporäre Dateien
Zugriff auf Windows Registry:
Diese Optionen können verwendet werden, um auf die Registrierungsdatenbank des dem DBMS zugrunde liegendem Windows-Systems zuzugreifenn
--reg-read Lese den Wert eines Windows Registrierungsschlüssels
--reg-add Schreibe den Wert eines Windows Registrierungsschlüssels
--reg-del Lösche einen Windows Registrierungsschlüssel
--reg-key=REGKEY Windows Registrierungsschlüssel
--reg-value=REGVAL Windows Registrierungsschlüsselwert
--reg-data=REGDATA Daten des Windows Registrierungsschlüsselwerts
--reg-type=REGTYPE Typ des Windows Registrierungsschlüsselwerts
Allgemein:
Mit diesen Optionen können grundlegende Einstellungen konfiguriert werden
-s SESSIONFILE Lade Session aus einer gespeicherten (.sqlite) Datei
-t TRAFFICFILE Protokolliere den gesamten HTTP-Verkehr in eine Textdatei
--batch Frage nicht nach Benutzereingaben, verwende das Standardverhalten
--binary-fields=.. Spalten mit binärem Inhalt (z.B. "digest")
--check-internet Überprüfe Internetverbindung, bevor das Ziel angesprochen wird
--crawl=CRAWLDEPTH Durchsuche die Webseite (nach weiteren Seiten) ausgehend von der Ziel-URL
--crawl-exclude=.. Regular Expression, um Seiten vom Durchsuchen auszuschließen (z. B. "logout")
--csv-del=CSVDEL Trennzeichen, welches in der CSV-Ausgabe verwendet werden soll (Standardmäßig ",")
--charset=CHARSET Blind SQL injection Zeichensatz (z.B. "0123456789abcdef")
--dump-format=DU.. Format der Dump Daten: CSV, HTML oder SQLITE (Standardmäßig: CSV)
--encoding=ENCOD.. Zeichencodierung für Daten-Abfragen (z.B. GBK)
--eta Zeige für jede Ausgabe die geschätzte Dauer an
--flush-session Leer Session Dateien für das aktuelle Ziel
--forms Analysiere und teste Formulare auf der Ziel-URL
--fresh-queries Ignoriere Abfrageergebnisse, die in der Session-Datei gespeichert sind (Cache)
--har=HARFILE Protokolliere den gesamten HTTP-Datenverkehr in einer HAR-Datei
--hex Verwende DBMS-Hexfunktion(en) für Daten-Abfragen
--output-dir=OUT.. Pfad für Benutzerdefiniertes Ausgabeverzeichnis
--parse-errors Analysiere und zeige DBMS-Fehler aus dem Response (Antwort des Servers)
--save=SAVECONFIG Speichere Optionen in eine INI Konfigurations-Datei
--scope=SCOPE Regular Expression zum Filtern von Zielen aus der bereitgestellten Proxy Log (Protokoll-datei)
--test-filter=TE.. Wähle Tests nach Payloads und/oder Titel (z.B. ROW)
--test-skip=TEST.. Überspringe Tests nach Payloads und/oder Titel (z.B. BENCHMARK)
--update Aktualisiere sqlmap
Sonstiges:
-z MNEMONICS Verwende verkürzte Merkhilfen (e.g. "flu,bat,ban,tec=EU")
--alert=ALERT Führe Befehl(e) auf dem Host-System (lokal) aus, wenn eine SQL Injection gefunden wird
--answers=ANSWERS Vordefinierte Antworten auf Benutzer Fragen (z.B. "quit=N,follow=N")
--beep Piep bei Fragen und/oder wenn SQL-Injekcions gefunden werden
--cleanup Bereinigen das DBMS von sqlmap-spezifischen UDF und Tabellen
--dependencies Suche nach fehlenden (non-core) sqlmap-Abhängigkeiten
--disable-coloring Deaktiviere farbige Konsolenausgabe
--gpage=GOOGLEPAGE Verwende Google Dork Ergebnisse aus angegebenen Seitennummer
--identify-waf Führe einen gründlichen Test zur Identifizierung von WAF, IPS und IDS durch
--mobile Imitiere Smartphone über den HTTP User-Agent Header
--offline Im Offline-Modus arbeiten (nur Session Daten verwenden)
--purge-output Entferne den gesamten Inhalt sicher aus dem Output (Ausgabe) Verzeichnis
--skip-waf Überspringe heuristische Erkennung von WAF, IPS und IDS
--smart Führe gründliche Tests nur bei positiver Heuristik durch
--sqlmap-shell Interaktive sqlmap Shell (Eingabeaufforderung)
--tmp-dir=TMPDIR Lokales Verzeichnis zum Speichern temporärer Dateien
--web-root=WEBROOT Root verzeichnis des Web-Servers (z.B. "/var/www")
--wizard Simples Assistent Interface für Anfänger