Sqlmap
sqlmap
Allgemein:
sqlmap ist ein Open Source Penetration Testing – Tool zum automatisierten Aufspüren und Nutzen von SQL-Injection-Schwachstellen. Seit Veröffentlichung der ersten Version im Jahr 2006 wird das Tool von den Entwicklern Bernardo Damele Assumpacao Guimaraes und Mirslav Stampar stetig weiterentwickelt und ist seit Januar 2020 in der stable-Version 1.4 für Linux, Windows und MacOS erhältlich.
Durch die Abstraktion der eigentlichen Befehle, die für den SQL-Injection-Angriff verwendet werden, ist für die Nutzung kaum bzw. keine Kenntnis von SQL-Injection vorrausgesetzt. sqlmap kann über die offizielle Webseite oder über das git-Repository bezogen werden.
Features:
sql-map bietet volle Unterstützung für eine weite Palette verschiedener Datenbanksysteme:
- MySQL
- Oracle
- PostgreSQL
- Microsoft SQL Server
- Microsoft Access
- IBM DB2
- SQLite
- Firebird
- Sybase
- SAP MaxDB
- Informix
- MariaDB
- MemSQL
- TiDB
- CockroachDB
- HSQLDB
- H2
- MonetDB
- Apache Derby
- Amazon Redshift
- Vertica
- Mckoi
- Presto
- Altibase
- MimerSQL
Dabei verwendet sqlmap folgende Techniken zur SQL-Injektion:
- boolean-based blind
- time-based blind
- error-based
- UNION query-based
- stacked queries (piggy backing)
- out-of-band
Parallel dazu unterstützt sqlmap auch das Erstellen von Listen von Usern, Passwort-Hashes, Berechtigungen, Rollen, Datenbanken, Tabellen und Spalten.
Passwort-Hashes werden automatisch nach Format klassifiziert und können mittels Wörterbuchangriff gecrackt werden. Zusätzlich besteht die Möglichkeit, dumps der jeweiligen Datenbank oder ihrer Teile zu erstellen. Weiteres Feature ist der Up- und Download beliebiger Files über das Filesystem des angegriffenen Datenbankservers.
Verwendung:
Standardmäßig verwendet sqlmap folgendes Befehlsschema zur Analyse:
sqlmap -u http://thisismywebsite/files/file.php?id=1
Dieses Standardschema liefert unter anderem allgemeine Informationen zu möglichen Schwachstellen, verwendetem DBMS, Version des DBMS, Betriebssystem des Web-Servers und Art des Webservers. Der Befehl kann durch zusätzliche Parameter erweitert werden, welche die genannten Features ansprechen.
Beispiel-Parameter:
* -- dbs: Ausgabe der Datenbanken * -- tables -D mydb: Ausgabe der Tabellen der Datenbank mydb * -- passwords: Ausgabe von Passwort-Hashes mit anschließend möglichem Wörterbuchangriff * -- dump: Erstellen eines Dumps der Datenbank-Tabellen * -b: Ausgabe des DBMS-Banners * -h: Ausgabe des help-files * -hh: Liste aller Parameter und Parameter-Optionen