Dieses Tool wird zum Testen von Datenbankservern verwendet. Mit SQLMAP können Sie viele Datenbankmodule und viele spezifische Funktionen testen, um die Sicherheit einer Datenbank zu testen . Hier müssen wir klarstellen, dass wir dies tun, um Schwachstellen zu finden und Probleme zu lösen, um Websites nicht zu beschädigen oder auf dänische Weise zu hacken. Dies wird als ethisches Hacken bezeichnet.
Unterstützt eine Vielzahl von Datenbank-Engines wie MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Firebird, Sybase, SAP MaxDB.
SQLMAP wurde in Python entwickelt und kann im Internet heruntergeladen werden. Http://sqlmap.org/ funktioniert unter Linux, aber mit Python kann es in Windows verwendet werden.
Sqlmap ist in Linux-Distributionen enthalten, die auf Sicherheit und ethisches Hacken spezialisiert sind, wie z. B. Linux Kali, Backtrack oder Backbox. In anderen Distributionen können Sie einfach herunterladen und installieren.
Für dieses Tutorial verwenden wir Linux Mint in jeder Distribution, die es unterstützt. Wir öffnen das Terminal und schreiben folgende Befehle:
wget 'https://github.com/sqlmapproject/sqlmap/tarball/master' -output-document = sqlmapproject-sqlmap-0.9-3671-gdcaad75.tar.gz
Entpacken Sie die Datei beim Herunterladen mit dem folgenden Befehl:
tar -xvf sqlmapproject-sqlmap-0.9-3671-gdcaad75.tar.gz
Wir können den Namen des Verzeichnisses ändern, um den Zugriff mit den folgenden Befehlen zu erleichtern:
MV-Verzeichnis-alt-Verzeichnis-neu
mv sqlmapproject-sqlmap-gdcaad75 sqlmap
cd sqlmap
Wir versuchen, es zum Laufen zu bringen, indem wir die Version von sqlmap mit dem folgenden Befehl aufrufen:
python sqlmap.py -version
Webseiten testen und nach Schwachstellen suchen
Eine einfache Möglichkeit, das zu analysierende Web zu finden, besteht darin, in der Google-Suche section.php? Id = Tausende von Websites anzuzeigen, die möglicherweise anfällig sind.
Beispiel für eine Analyse auf einer möglicherweise unsicheren Website:
In diesem Fall nach der Analyse des Webs und dem Versuch, darauf zuzugreifen. Wir sehen, dass alle analysierten Parameter nicht injizierbar zu sein scheinen, was bedeutet, dass das Web in diesem Fall gegen Injektionen sicher ist.
In einem anderen Fall ändern wir aus Sicherheitsgründen den tatsächlichen Namen des Domänennamens, aber die Parameter sind real.
python sqlmap.py -u http://www.demoweb.com/index.php?seccion=ver_detalle&id=103
In diesem Fall hat SQLMAP eine Möglichkeit der SQL-Injection gefunden, daher warnt es uns, dass die
Der Parameter ‘section’ scheint Teil einer MySQL 5.0.11-Abfrage zu sein und kann injiziert werden. Dann werden wir gefragt, ob wir einen Angriff auf diese Datenbank versuchen möchten oder ob wir ihn überspringen und andere Datenbank-Engines ausprobieren möchten. Wir klicken und die Software startet verschiedene Angriffe und Tests durchzuführen. Wir werden alle möglichen Ergebnisse an SQL Injection Tacks zurücksenden.
Entdecken Sie verwundbare Datenbanken und Tabellen
Durch den vorherigen Test können wir feststellen und bestätigen, dass eine Datenbank oder ein Web anfällig für SQL-Injection ist. Daher besteht der nächste Schritt darin, die Namen der Datenbanken zu ermitteln, die auf dem Server oder in der Domäne vorhanden sind. Die Option “–dbs” wird verwendet, um die Liste der Datenbanken abzurufen.
python sqlmap.py -u "http://www.demoweb.com/index.php?seccion=ver_detalle&id=103" -dbs
Wir sehen, dass ich eine Schwachstelle erkenne, dann wird gefragt, ob ich den SQL Injection-Angriff starten möchte. Am Ende sehen wir die SQL-Abfragen, die in diesem Fall gefundenen Datenbanken sind zwei baxxxx_db, die Website, die wir testen, und das andere Informationsschema, das die Struktur von Mysql enthält.
An dieser Stelle müssen wir klarstellen, dass wir dies tun, um Schwachstellen zu finden und Probleme zu lösen, um Websites nicht zu beschädigen oder auf schädliche Weise zu hacken. Dies wird als ethisches Hacken bezeichnet.
Durchsuchen Sie Tabellen in einer bestimmten Datenbank
Nachdem Sie eine Datenbank gefunden haben, ist es jetzt an der Zeit, herauszufinden, welche Tabellen in einer bestimmten Datenbank vorhanden sind. Beispiel: Wir haben eine Systemdatenbank und eine andere, in der die Daten des Webs gespeichert sind dass die hier interessierende Datenbank die des Webs baxxxx_db ist.
Die Syntax des auszuführenden Befehls lautet wie folgt:
python sqlmap.py -u "urlserver" --tables -D Datenbank
Daher verwenden wir die Daten aus den vorherigen Schritten
python sqlmap.py -u "http://www.demoweb.com/index.php?seccion=ver_detalle&id=103" -tables -D baxxxx_db
Wir können sehen, wie das Ergebnis von SQLMAP eine Liste von Tabellen ist, in denen wir sicher die Tabelle der Benutzer und eine Tabelle der Administratoren des Webs sehen können.
Dies zeigt, wie unsicher der Server ist, den wir analysieren, und welche Probleme der ahnungslose Administrator oder Webmaster haben könnte.
Als nächstes werden wir, wie wir bereits herausgefunden haben, welche Datenbanken und Tabellen existieren, untersuchen können, welche Spalten und Strukturen die Tabellen in der Datenbank enthalten.
Dafür verwenden wir die folgende Befehlssyntax:
python sqlmap.py -u "urlserver" --spalten -D datenbank -T tabelle
Daher verwenden wir die in den vorherigen Schritten gefundenen Daten. Mit den folgenden Befehlen wird die Tabelle der Administratoren angezeigt.
python sqlmap.py -u "http://www.demoweb.com/index.php?seccion=ver_detalle&id=103" --columns -D baxxxx_db -T administrator
Infolgedessen können wir die Struktur der Administrator-Tabelle der MYSQL-Datenbank aufgrund der Sicherheitsprobleme des Servers beobachten.
Als Nächstes haben wir versucht, dieselbe Analyse mit der Benutzertabelle durchzuführen:
python sqlmap.py -u "http://www.demoweb.com/index.php?seccion=ver_detalle&id=103" --columns -D baxxxx_db -T-Benutzer
Nach der Analyse zeigt SQLMAP die 9 Spalten, aus denen sich die Struktur der Tabelle zusammensetzt.
Zeigen Sie die Daten einer Tabelle an, insbesondere die Daten einer Tabelle.
Dann werden wir den interessantesten Teil zeigen, bei dem es sich um das angestrebte Ziel handelt, Daten aus der Tabelle zu extrahieren. Wir werden sehen, wie jemand auf die Daten zugreifen kann, um sie zu manipulieren. Ein guter Netzwerkadministrator möchte, dass dies nicht geschieht. Der Befehl zum Anzeigen der Daten lautet:
python sqlmap.py -u "urlserver" --dump -D basedata -T table
Der vorherige Befehl -dump bewirkt lediglich das Sichern der Daten der Tabelle, ähnlich der Funktion, die den Befehl mysqldump ausführt. Auch das Drucken von Daten auf dem Bildschirm sieht ähnlich aus.
Als Nächstes versuchen wir, dieselbe Analyse mit der Benutzertabelle durchzuführen
python sqlmap.py -u "http://www.demoweb.com/index.php?seccion=ver_detalle&id=103" "--dump -D baxxxx_db -T-Benutzer
Bisher konnten wir mithilfe von sqlmap eine große Menge an Informationen aus einer entfernten Datenbank von einem unsicheren Server in Ihrer Datenbank sammeln. Die Datenbank-Engine ist Mysql und über sqlmap ist es fast so, als hätte man über ein Tool wie phpmyadmin direkten Zugriff auf die Datenbank.
In diesem Tutorial sind die Analysen real, wurden jedoch mit dem Ziel erstellt, Schwachstellen zu überprüfen. Bei Angriffen von Hackern könnten sie versuchen, eine Administratorebene für den Zugriff auf das System zu erhalten. Dazu würden sie versuchen, auf Kennwörter zuzugreifen und sich über das Administrationsfenster anzumelden, oder sie würden versuchen, Informationen über ein Unternehmen und seine wichtigsten Daten zu erhalten.
In einem weiteren Tutorial wird erklärt, wie Sie mit SQLMAP prüfen, ob die Web-Formulare beim Senden von Daten sicher sind oder nicht.