Dozent: In
allen bisherigen Vorlesungen haben wir SQL-Injections manuell ausgenutzt.
Also haben wir den Code in die URL
oder in die Textfelder eingefügt.
In diesem Video zeige ich Ihnen ein Tool namens sqlmap, mit
dem Sie alles tun können, was wir bisher gelernt haben,
und noch mehr.
Dieses Tool kann für MySQL-Datenbanken verwendet werden, für
die wir das Beispiel verwendet haben.
Es kann auch für Microsoft
SQL, Oracle und andere Datenbanktypen verwendet werden.
Das Tool ist sehr nützlich und in vielen Fällen sehr praktisch.
Manchmal sind die Injektionen nicht so gut wie die, die
wir gesehen haben.
Manchmal erhalten Sie nur eine Ausgabe für jeden
Datensatz und müssen alle Ausgaben durchlaufen.
Das Tool kann dies also
automatisieren und alles viel einfacher und einfacher für Sie erledigen.
Lassen Sie uns zunächst die URL
abrufen, die wir für die Injektion verwendet haben.
Ich habe hier also die Textdatei, die wir verwendet haben, und ich
habe die URL, die wir zuvor verwendet haben.
Es ist also der Benutzer. Info. PHP,
Benutzername ist admin, Passwort, adminpass.
Sie brauchen den Benutzernamen und das Passwort
nicht wirklich zu kennen, also werde ich einfach irgendetwas hier einfügen.
Nur um anzunehmen, dass wir
das Passwort nicht kennen, injizieren wir nur SQL-Injektionen.
Wir müssen nichts davon wirklich wissen.
Ich werde das nur
kopieren und dann sqlmap ausführen.
Und ich werde dich bitten, die URL anzugeben und
ich werde mein Ziel setzen.
Und ich
werde sicherstellen, dass ich es zwischen zwei Anführungszeichen
habe, damit es nichts ignoriert, irgendwelche
Zeichen in der Mitte, also haben
wir einige Zeichen und Zeichen in der
Mitte, die ich möchte, dass alles als eins behandelt wird URL.
Also habe ich nur sqlmap -u mein Ziel.
Und ich
drücke die Eingabetaste und das Tool durchsucht automatisch
die Parameter, also durchsucht es die
Benutzerinformationen, den Benutzernamen und das Kennwort,
um festzustellen, ob einer von ihnen
injizierbar ist, und speichert ihn
anschließend in seiner Erinnerung.
Es wird also klar, dass
dies injizierbar ist, und dann können wir das Ziel weiter ausnutzen.
Wie Sie jetzt
sehen können, denken wir, dass unser Ziel MySQL oder PostgreSQL sein könnte.
Es fragt mich, ob andere Tests übersprungen werden sollen und ich werde
ja sagen, weil
ich weiß, dass es MySQL ist.
Und jetzt fragt es mich, ob es alle Tests für
beide Datenbanken durchführen soll?
Und ich werde ja sagen, vorausgesetzt, ich bin
nicht sicher, welches es ist.
Ich weiß, dass es MySQL ist, aber ich lasse es einfach sein Ding machen
und wir werden sehen, ob es es richtig machen kann oder nicht.
Im Moment
wird geprüft, ob es sich um PostgreSQL handelt.
Und ich gehe davon aus, dass es wissen wird, dass es nicht
ist, und dann wird es wissen, dass es MySQL ist.
Es wurde gerade herausgefunden, dass der Benutzername injizierbar
zu sein scheint.
Und es sagt uns, dass der
Parameter Benutzername anfällig ist und wir ihn
injizieren können.
Ich werde also gefragt, ob ich die anderen Parameter wie
das Kennwort und alle überprüfen möchte.
Ich kann ja sagen und es tun lassen,
aber ich werde
nein sagen, weil es mir nichts ausmacht, wenn es nur den
Benutzernamen für die Injektion verwendet, damit alles in Ordnung ist.
Jetzt weiß sqlmap, dass das Ziel injizierbar ist und dass
es den Parameter username verwenden wird, um Inhalte
zu injizieren.
Und ich kann sehen, dass es herausgefunden
hat, dass Linux Ubuntu läuft und dass es PHP mit
Apache 2 verwendet. 2. 8.
Und es verwendet MySQL Server als Datenbankserver.
Lassen Sie uns sqlmap --help ausführen und sehen, was wir
jetzt tun können.
Nun, dieses Tool ist wirklich groß
und ermöglicht es Ihnen, eine Menge Dinge zu tun.
In diesem Video werde ich Ihnen nur
einen kurzen Blick auf
das Video werfen. Ich empfehle Ihnen, mehr Zeit damit zu verbringen und zu
versuchen, zu sehen, was Sie sonst noch damit machen können.
Okay, also lasst uns versuchen, den aktuellen Benutzer zu ermitteln und
wir werden versuchen, die aktuelle Datenbank zu ermitteln.
Wir werden also den gleichen Befehl verwenden, den
wir zuvor verwendet haben, und ich werde nur dbms hinzufügen, um die
aktuellen Datenbanken abzurufen.
Oder dbs, sorry.
Wie Sie sehen können, haben wir alle Datenbanken, die wir haben.
Wir haben also dvwa, wir haben information_schema,
metasploit, mysql, owasp10, das war
das, was wir vorher ausgenutzt haben, und tikiwiki.
Wenn wir jetzt "current-user" machen, können Sie sehen,
dass wir root sind,
und wenn ich "current-database" mache,
werden wir sehen, dass owasp10 unsere aktuelle Datenbank ist.
Versuchen wir nun, die Tabellen für owasp10
abzurufen. Denken Sie also daran, wann wir einen ausgewählten Tabellennamen aus
information_scheme erstellt haben. Tabellen,
in denen table_schema gleich owasp10 ist.
Wir werden das tun, wir werden sqlmap das alles für
uns tun lassen und so wird der Befehl
lauten, wir werden ihn bitten, alle Tische für uns zu holen.
Und wir werden
die D-Option verwenden, um die Datenbank
anzugeben, und unsere Datenbank wird owasp10 heißen.
Und wie Sie sehen, hat es uns alle Tabellen
gebracht, die es gibt, und denken Sie daran, es ist dasselbe.
Wir haben auch
Accounts, blogs_table und die credit_cards.
Wenn wir nun die
Spalten abrufen möchten, können wir
denselben Befehl erneut verwenden und sagen, dass ich
die Spalten abrufen soll, in denen die Tabelle accounts
heißt und die Datenbank owasp10 lautet.
Und genau hier können wir sehen, dass wir die Säulen haben.
Wir haben also den is_admin, das Passwort und den
Benutzernamen und können die
Daten mit der dump-Option erhalten.
Es ist also derselbe Befehl, den wir zuvor verwendet haben.
Also erhalten wir die Daten aus der Tabelle mit dem Namen accounts
und der Datenbank mit dem Namen owasp10.
Ich möchte, dass Sie mir alle Daten besorgen.
Und los geht's, wir haben alle Daten.
Wir haben den Admin, sein Passwort, Adminpass
und wir haben Adrian und sein Passwort ist ein Passwort.
Und wir haben alle Daten hier.
Wie gesagt, das Tool ist sehr nützlich.
Es kann verwendet werden, um unser Leben viel einfacher zu machen,
und es macht alles automatisch und es kann
alles tun, was wir getan haben, und es
kann sogar noch mehr Sachen machen.