Kursleiter: In dieser Vorlesung und den
nächsten Vorlesungen werden wir über
eine beliebte Art von Sicherheitslücken sprechen, die als SQL-Injections bezeichnet werden.
Bevor wir darüber sprechen, wie dies geschieht und wie
man es ausnutzt, wollen wir zunächst lernen, was SQL ist.
Wenn Sie nun einen Pen-Test auf einer
bestimmten Website durchführen, ist diese Website wahrscheinlich etwas größer
als kleinere Websites. Daher wird wahrscheinlich eine Datenbank verwendet.
Die meisten Websites, mit Ausnahme
sehr einfacher Websites, verwenden Datenbanken. Die Datenbanken werden zum Speichern von
Daten verwendet, also zum Speichern von Benutzernamen, Kennwörtern,
Nachrichtenartikeln, Blogeinträgen und Bildern.
Alles, was auf der Website passiert, wird buchstäblich
in einer Datenbank gespeichert, und die Webanwendung fragt die Datenbank ab
und zeigt Ihnen oder den Benutzern die Daten auf
dem Bildschirm an.
Wenn die Benutzer etwas tun, werden die
in der Datenbank vorhandenen Daten entweder aktualisiert, gelöscht oder geändert.
Diese Interaktion zwischen der
Webanwendung und der Datenbank erfolgt in einer Sprache namens SQL.
Lassen Sie mich Ihnen also zeigen, was ich unter
Datenbank verstehe. Dies ist
nur ein Beispiel.
Ich hacke nichts. Ich werde mich buchstäblich nur bei
der Datenbank anmelden, die auf unserem Metasploitable-Computer installiert ist, und dann
sind wir es Ich werde nur sehen, was darauf installiert wurde.
Also, ich mache kein Hacking, hier ist nichts, da ist nichts
Besonderes, ich logge mich einfach in mein SQL ein.
Und dann sage ich, der
Benutzername ist root und das Metasploitable verwendet kein Passwort für den
root, was wirklich schlecht ist, aber offensichtlich ist es ein anfälliges System.
Also, ich werde mich nur einloggen und
nichts hacken, ich mache
keine SQL-Injektionen, dies ist nur das
Terminal für MySQL, mit dem die Webanwendung mit der
Datenbank interagieren würde.
Ich versuche Ihnen nur zu zeigen, was ich unter
Datenbanken verstehe und was dort gespeichert ist.
Das erste, was ich
tun werde, ist, dass ich nur Showdatenbanken eintippe.
Das zeigt uns die Datenbanken, die
auf unserem Zielserver vorhanden sind, und Sie können sehen,
dass wir das Informationsschema haben. Dies ist
eine Standarddatenbank, die Standardinformationen und
Informationen zu allen anderen Datenbanken enthält.
Dieser wird also standardmäßig installiert, wenn Sie
MySQL installieren.
Der Rest wurde für jede Webanwendung installiert.
Also, wir können sehen, wir haben eine für TikiWiki,
wir haben eine für Owas10, und das ist für diesen einen Mutilllidae.
Wir haben auch eine namens mysql,
eine namens metasploit und
eine für dvwa, die wir verwendet haben,
die Webanwendung.
Sie sehen also,
dass wir für jede Webanwendung eine Datenbank
haben und diese Datenbank die Informationen enthält,
die von dieser Webanwendung verwendet werden.
Lassen Sie mich Ihnen
zeigen, was da drin ist, also werde ich die owas10-Datenbank verwenden.
Dies ist also diejenige, die wiederum für Mutilldae,
für diese Webanwendung, bestimmt ist.
Und wir können die Tabelle sehen, also hat jede
Datenbank eine Tabelle, Tabellen und in den Tabellen gibt es Informationen.
Also werde ich "show tables" sagen, um die Tabellen zu sehen, die
wir haben.
Sie sehen, wir haben eine
Tabelle für Konten, sodass Sie davon ausgehen können, dass diese Tabelle
Informationen zu Benutzernamen, Kennwörtern und Informationen zu den Benutzern enthält.
Wir haben eine Tabelle für Blogs, wahrscheinlich auch die Blog-Eingaben,
die Posts und die Kommentare.
Sie können erfasste Daten und Kreditkarten anzeigen, sodass
eine Tabelle mit Kreditkarten vorhanden ist.
Nun, das ist riesig für Shopping-Websites,
sie hätten tatsächlich einen Kreditkartentisch und
die Informationen für die Kreditkarten
würden dort gespeichert.
Grundsätzlich speichert die Datenbank alles, alle
Daten, die auf der Website verwendet werden.
Weil sie nicht in Dateien gespeichert werden, ist es nicht effizient.
Werfen wir also einen Blick auf die Konten und
wenn ich nur "select" sage, dann ruft die Webanwendung genau
so Informationen aus der Datenbank ab, wählt Inhalte
aus, aktualisiert oder löscht sie.
Also mache ich hier wieder eine Select-Anweisung, das ist
kein Hacking, ich mache nichts, ich
wähle nur Sachen aus.
Und ich werde Stern auswählen, was
alles bedeutet, von Konten.
Apostroph, und wie wir sehen können, haben wir die Konto-ID, den Benutzernamen, das
Passwort und dann
die Unterschrift für die Person, und
wenn diese Person ein Administrator ist.
Nun hängen diese Spalten von der
Tabelle ab, sodass es tatsächlich die Person
ist, die die Datenbank entwirft, die Tabellen und auch die Spalten entwirft und
die Daten dann von der Webanwendung eingefügt werden.
Sie sehen also, dass wir einen
Benutzer namens admin haben, dessen Kennwort adminpass lautet.
Wir können sehen, dass wir einen Benutzer namens
adrian haben, dessen Passwort ein Passwort ist.
Dies soll Ihnen nur zeigen, wie Datenbanken aussehen, und Sie sollen ein Gefühl
dafür bekommen, denn in den
zukünftigen Videos werden wir versuchen, diese Datenbanken
auszunutzen und einen ähnlichen Zugriff zu erhalten.
Daher habe ich mich gerade
mit einem Benutzernamen
und einem Passwort angemeldet. Normalerweise hätten Sie keinen
solchen Zugriff, nur der Webadministrator hätte diesen Zugriff.
In den zukünftigen Videos werden wir versuchen, einige Angriffe auszuführen, um einen ähnlichen Zugriff
zu erhalten, damit wir die volle Kontrolle über
die Datenbank haben, damit wir Inhalte lesen
und sehen können, ob wir Dinge schreiben
oder ändern können .