Kursleiter: In
dieser Vorlesung möchte ich Ihnen zeigen, wie wir SQL-Injections zum
Lesen von Dateien auf dem Server verwenden
können. Selbst wenn die Datei außerhalb des WWW-Stammverzeichnisses vorhanden ist, können
wir sie genau wie eine
Offenlegung von Dateien lesen und wir werden auch
sehen, wie wir es verwenden können,
um Dateien zu schreiben und sie auf das System
hochzuladen, genau wie eine Sicherheitsanfälligkeit beim Hochladen von Dateien.
Das erste, was wir uns ansehen werden,
ist das Lesen der Datei.
Und ich werde hier alles auf null setzen.
Also habe ich meine Aussage hier
und ich werde eine auswählen, und ich
werde die Nummer
zwei verlassen, weil ich Sachen dazu machen werde.
Und wir werden hier noch drei Nullen machen.
Also
null, null, null.
Also haben wir null irgendwas null, null, null ausgewählt.
Also fünf, weil wir fünf Datensätze haben,
als wir die Bestellung durchführten.
Und anstatt etwas auszuwählen, denken Sie daran,
dass wir im
dritten Video zum Beispiel die Datenbank ausgewählt haben und sie
uns die aktuelle Datenbank zeigt.
Was ich jetzt
tun möchte, ist, dass ich eine andere Funktion
ausführen möchte, und diese Funktion heißt load_file.
Und hier werde ich die Datei festlegen, die
ich laden möchte, und ich werde dieselbe Datei
verwenden, die
wir in der Sicherheitsanfälligkeit bezüglich der Aufnahme
von Dateien untersucht haben, und sie war etc / passwd.
Wir versuchen also, diese Datei
zu lesen, und unsere Aussage ist, dass wir diese Datei auswählen und das wars.
Also werde ich das kopieren.
Und ich werde es
hier injizieren und ich werde mein%
23 hinzufügen, was mein Befehl ist.
Und wie Sie
sehen können, haben wir es geschafft, alle
Informationen, den gesamten Inhalt von etc / passwd zu lesen,
obwohl es nicht im Webstamm ist.
Also ist es in etc / passwd gespeichert.
Wir können also alles auf dem Server
von anderen Websites
oder von anderen Dateien auf dem
Server lesen,
indem wir den vollständigen Pfad dieser Datei angeben.
Das nächste, was ich Ihnen
zeigen möchte, ist das Schreiben an den Server.
Wir werden also tatsächlich etwas auf
den Server schreiben. Dies
ist sehr nützlich, da Sie in der Lage sind, jeden gewünschten
Code zu schreiben. Sie können also beispielsweise den Code für ein
PHP-Skript schreiben und einen Code von eine Shell, ein Virus oder
ein PHP-Code, um andere Verbindungen zu Ihnen herzustellen.
Im Grunde handelt es
sich also nur um eine Sicherheitsanfälligkeit beim Hochladen von Dateien.
Und um das
zu tun, werde ich den Code schreiben,
den ich hier machen möchte,
und ich werde das zum Beispiel nur als Beispiel bezeichnen.
Und wir werden eine Funktion namens outfile verwenden, also werden
wir outfile ausführen und
dann angeben, wo
wir diese Datei speichern wollen.
Im besten Fall können Sie
jetzt in Ihr Web-Stammverzeichnis schreiben. Dies bedeutet, dass
Sie über den Browser auf die Datei
zugreifen und sie ausführen können, sodass
Sie eine Weevely-Datei hochladen und dann eine Verbindung herstellen
und Aufgaben
ausführen können so wie das.
Versuchen wir es also zuerst.
Also werden wir es in var / www machen und das ist
unser Web-Root, damit wir darauf zugreifen
können, oder
Sie können es sogar in var / www und danach
in mutillidae ablegen, um
es dort zu speichern.
Der Befehl ist also sehr einfach.
Wieder Union Select.
Stellen Sie sicher, dass Sie
alles auf null setzen, damit nichts in die Datei
geschrieben wird, außer
dem, was Sie hier eingegeben haben, und
ich habe ein Beispiel angegeben, und es wird
in unserer Datei in var / www / mutillidae
gespeichert und ruft dieses Beispiel auf. TXT.
Lassen Sie uns versuchen, dies auszuführen und zu prüfen, ob es funktioniert.
Nun, das hat nicht funktioniert.
Und wenn
Sie hierher kommen, werden Sie feststellen, dass SQL oder MySQL
dieses Verzeichnis nicht erstellen oder in dieses schreiben dürfen.
Das Problem ist also, dass wir
nicht über die Berechtigungen
verfügen, die uns nicht erlauben, an diesen bestimmten Ort zu schreiben.
Um diesen Exploit zu testen,
werde ich diesen Ort in tmp ändern, was die Zeit ist,
und Sie
werden sehen, dass Sie in Szenarien tatsächlich in temp
schreiben können, es hängt davon ab,
ob Sie es versuchen und sehen können du
kannst Zeug schreiben oder nicht.
In diesem Beispiel versuchen wir jetzt, in
temp zu schreiben.
Wenn wir in temp
lesen, wenn wir das löschen und dann ls und / tmp sehen
Sie, dass wir ein Beispiel haben,
und wenn Sie versuchen, das zu
lesen, werden Sie sehen, dass es enthält, offensichtlich
enthält
es den Inhalt dessen, was wir vorher
gemacht haben, was die normale Auswahl war, die Sie sehen würden.
Also, was sehen Sie, wenn Sie das Zeug für den Administrator abgelegt haben, und
dann hat es uns gezeigt, was darin
enthalten ist. Dies ist ein
Beispielbeispiel, das wir in die Datei schreiben wollten.
Jetzt können Sie natürlich den
Admin und den
Adminpass loswerden, indem Sie
einfach einen falschen Benutzernamen eingeben und
nichts wird hier angezeigt. Das einzige, was
Sie sehen, ist die Ausgabe, die ein Beispiel ist.
Aber auch dies ist nur dann
nützlich, wenn Sie in der Lage sind, auf Ihren
Webserver zu schreiben, auf
diesen zuzugreifen und
dann Ihre Shell oder Nutzlast zu verwenden und das System weiter auszunutzen.