Sqlmap selbst auszuführen ist nicht schwer.
Dieses Tutorial wird Sie vom Noob zum Ninja mit diesem leistungsstarken Tool zum Testen von Sql-Injektionen machen.
Sqlmap ist ein Python-basiertes Tool, was bedeutet, dass es normalerweise auf jedem System mit Python läuft. Wir bevorzugen jedoch Linux und insbesondere Ubuntu, da es einfach ist, Dinge zu erledigen. Python ist in Ubuntu bereits installiert. Dies ist dasselbe Tool, das wir auf unserer Online-Sql-Injection-Testseite verwenden.
Um mit sqlmap zu beginnen, müssen Sie das Tool nur herunterladen, entpacken und den Befehl mit den erforderlichen Optionen ausführen. Da es unter Ihnen vielleicht Windows-Benutzer gibt, fange ich zunächst damit an, wie man eine Ubuntu-Installation zum Laufen bringt. Der Einstieg in ein Ubuntu-Linux-System ist einfach, auch wenn der Gedanke an Linux Ihnen Angst einjagt. Wer weiß, vielleicht gefällt es Ihnen ja sogar.
– SQLmap installieren
– HTTP GET
– Blockiert werden
– Datenbanktabellen
– Dump der Daten
– Tipps
– Verbose output
– Datenbank Credentials
– DB Connection Credentials
SQLmap installieren
Schritt 1: Besorgen Sie sich ein Linux-Betriebssystem
Wenn Sie SQLmap unter Windows mit Python betreiben wollen, stellen Sie sicher, dass Sie Python installiert haben, und gehen Sie zum nächsten Schritt über. Andernfalls bringen Sie Ihr Linux-System in Schwung. Installieren Sie entweder eine virtuelle Linux-Maschine (Ubuntu oder Kali empfohlen) unter Windows (Virtualbox / VMware / Parrallels) oder starten Sie Ihren Linux-Desktop.
Wenn Sie Microsoft Windows als Ihr Hauptbetriebssystem verwenden, ist es bequem und einfach, eine Installation von Ubuntu Linux (oder Kali Linux) in einer virtuellen Maschine auszuführen. Sie können dann mit sqlmap, nmap, nikto und openvas zusammen mit hundert anderen leistungsstarken Open-Source-Sicherheits-Tools spielen.
Schritt 2: SQLmap-Installation
Python ist in Ubuntu vorinstalliert, so dass Sie nur das neueste Repository von git klonen und mit Ihren Tests beginnen müssen.
Wechseln Sie in das Verzeichnis und führen Sie das Python-Skript aus, um sicherzustellen, dass alles gut aussieht.
Wenn Sie nicht so etwas wie die obige Ausgabe sehen, vergewissern Sie sich, dass Python funktioniert (versuchen Sie es mit python -V
), um die Version zu überprüfen und dass Sie am richtigen Ort sind. Das war der einfache Teil.
Um eine vollständige Liste der verfügbaren Optionen zu erhalten, führen Sie python sqlmap.py -h
aus.
SQLmap ausführen
Einfacher HTTP GET basierter Test
In diesem einfachen Test werden wir eine standardmäßige HTTP GET
basierte Anfrage gegen eine URI mit einem Parameter (?id=5) verwenden. Dadurch werden verschiedene SQL-Injection-Methoden für den Parameter id
getestet.
python sqlmap.py -u 'http://mytestsite.com/page.php?id=5'
In den Ergebnissen sehen wir die verschiedenen Methoden, die für den Parameter verwendet werden.
Blockierung durch die Web Application Firewall – WAF
Versuchen Sie, einen anderen User-Agent als den Standard-Sqlmap mit dem Parameter --randomagent
zu verwenden.
Abrufen der Datenbanktabellen
SQLmap kann verwendet werden, um SQL Injection zu testen und auszunutzen, um Daten aus Datenbanken zu extrahieren, Tabellen zu aktualisieren und sogar Shells auf entfernten Hosts zu starten, wenn alle Voraussetzungen erfüllt sind.
Lassen Sie uns die Tabellen aus der Datenbank abrufen, indem wir die oben bestätigte SQL Injection-Schwachstelle verwenden. Wie Sie in der nachstehenden Ausgabe sehen, können wir mit den Tests gegen das Ziel fortfahren, ohne die Schwachstelle erneut testen zu müssen. SQLmap verwendet die Informationen, die es über die Website kennt, um die Zieldatenbank weiter auszunutzen.
Um Daten abzurufen, fügen wir einfach einen Parameter zum vorherigen Befehl hinzu. Durch Hinzufügen von --tables
können wir versuchen, alle Tabellen abzurufen.
Dump the data
Um Daten abzurufen, erweitern wir einfach unseren Befehl. Durch Hinzufügen von -T users
konzentrieren wir uns auf die Benutzertabelle, aus der wir möglicherweise einige Anmeldedaten abrufen können. Durch Hinzufügen von --dump
wird SQLmap angewiesen, alle Daten aus der Benutzertabelle abzurufen. Zuerst werden die Spalten aufgezählt und dann werden die Daten aus den Spalten ausgelesen.
SQLmap Tipps – Werden Sie Ninja bei Ihren SQL Injection Tests
Verbose output
Beim Testen auf SQL Injection ist es oft notwendig, die Anfragen manuell zu untersuchen, um Probleme mit dem Test festzustellen oder um eine entdeckte Injektion zu bestätigen oder sogar weiter auszunutzen. Die Möglichkeit, die Ausführlichkeit der SQLmap-Ausgabe zu erhöhen, hilft bei diesen Tests.
Wenn Sie die Ausführlichkeit auf 4 erhöhen, erhalten Sie die HTTP-Anfragen, mit 5 sehen Sie auch die HTTP-Antwort-Header und mit 6 wird die vollständige HTTP-Antwort angezeigt. Natürlich kann das sehr unübersichtlich werden, aber manchmal muss man sehen, was passiert.
Haben Sie Datenbank-Zugangsdaten?
Mit diesem praktischen Tipp können Sie sich direkt mit der Datenbank verbinden und Daten wie Benutzer, Datenbanken oder Tabellen ausgeben. Das Schöne daran ist, dass Sie sich nicht an die SQL-Syntax für die Datenbank erinnern müssen oder einen Client installiert haben. SQLmap übernimmt die schwere Arbeit und fungiert als Datenbank-Client, um Daten zu dumpen.
DB-Verbindungsstrings:
MySQL, Oracle, Microsoft SQL Server, PostgreSQL
DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME
SQLite, Microsoft Access
DBMS://DATABASE_FILEPATH
Popping Shells und mehr
SQLmap hat eine lächerliche Anzahl von Optionen und ist ein erstaunliches Werkzeug, um mit einer Datenbank eins zu werden. Sie können nicht nur Shells auf dem Zielhost platzieren, sondern auch Anfragen über tor senden, automatisch Injektionen in Seitenantworten finden, Websites spidern und natürlich HTTP POST-basierte Tests durchführen. Diese Beispiele kratzen nur an der Oberfläche. Weitere Beispiele finden Sie auf der ausgezeichneten Github-Wiki-Seite.
SQL-Injektion ist nach wie vor ein beliebtes Ziel von Angreifern.
Nutzen Sie unseren SQL-Injection-Scanner, um auf injizierbare Parameter in einer Web-URI zu testen.
Nächste Stufe des Testens mit fortgeschrittenen Sicherheits-Schwachstellen-Scannern.
Vertraute Tools. Gehostet für einfachen Zugriff.