Die größte Sicherheitslücke, die wir uns angeschaut haben, war die endgültige Einbeziehung. Wir haben uns zwei Arten der
lokalen Dateieinbeziehung angesehen, die es uns ermöglichte, jede Datei in das System einzuschließen und dann Dateien zu lesen, die eine
Sicherheitsanfälligkeit bei der Offenlegung von Dateien verursachen.
Und dann können Sie jede Datei auf dem Server lesen.
Und dann haben wir uns die Remote-Datei-Inklusion angesehen, die sehr gefährlich ist und uns erlaubt hat,
Dateien von jedem Webserver einzubinden.
Wir konnten also BHB-Regale einbinden und dann vom Computer des Ziels eine Verbindung herstellen, um diese zu verhindern.
Stellen Sie zunächst sicher, dass Sie das Eindringen von Remote-Dateien verhindern.
Nur für den Fall, dass irgendetwas schief geht, können Personen Dateien von außerhalb Ihres Servers einschließen, und Sie können dies
auf die gleiche Weise tun, wie wir sie mit dem BHB aktiviert haben, indem Sie das Kontrollkästchen Zulassen für sich selbst deaktivieren und
Ihre Einfügung zulassen.
Und wenn wir hier zu unserem Ausstellungstisch gehen, zeige ich es Ihnen sehr schnell.
Wir machen also Pseudo-Nano, das ist der Texteditor, Seite PTG IPH-Reader.
Ich brauche die gleiche Datei, die wir verwenden.
Dies ist die Datei für die HP Einstellungen.
Wenn du die Datei öffnest und ich werde die Kontrolle übernehmen, werde ich nach deinem el suchen und du vergewissere dich,
dass das Erlauben des sich öffnenden Starts und das Einschließen eines Sets auch erlaubt sind.
Steuere X Y und gehe hinein und das wird es für dich speichern.
Die andere Möglichkeit, diese Ausnutzungen zu verhindern, ist die Verwendung der statischen Dateieinbindung.
Anstatt die dynamische Dateieinbeziehung zu verwenden, können Sie die Dateien, die Sie in den Code einschließen möchten,
hart codieren und nicht mit GET oder POST abrufen.
Zum Beispiel, was passiert und die Beispiele, die wir in den verwundbaren Beispielen sehen,
ist eine Seite namens Page oder Index, die BHP und dann diesen Index, der einen Parameter namens page verwendet, und dann eine andere
Seite, beispielsweise Nachrichten, die Ph. D. und es enthält diese Nachricht BHB im Code.
So wie der Code im APHC-Code aussieht, sehen Sie so etwas.
Include
So was wird das tun.
Im Grunde sieht das so aus, ich glaube was das tun soll.
Es schließt ein, was nach dem Seitenparameter kommt.
Der Code nimmt also dynamisch alles, was nach dem Seitenparameter kommt, und fügt es in die aktuelle Seite
ein.
Das wird also auf der Indexseite sein.
Ok, das ist sehr schlimm, denn auch wenn es nicht immer so ist, dass die Leute Post benutzen und in der Post werden
Sie das nicht sehen, also wird es gepostet.
Sie können jedoch einen Proxy wie Barer Proxy verwenden, und das würde so aussehen.
Und dann können Sie es ändern und erhalten, um alles, was Sie wollen, aufzunehmen.
Und dann wird es auf der Seite angezeigt, auf der Sie wirklich etwas tun wollen, wenn wir das, was
aufgenommen werden soll, verwenden oder nicht manipulieren können.
Wenn Sie also eine Seite mit dem Namen "News" einschließen möchten, die BHB nur in diese Seite aufgenommen hat, ohne dem
Benutzer die Möglichkeit zu geben, sie zu ändern, wissen Sie, dass Sie Ihren Code so programmieren, dass er
so aussieht.
Aber die Benutzer, die wir kennen, sehen, wie die Benutzer damit spielen können, und bringen sie dazu, alles einzuschließen, was sie
möchten.
Der beste Weg, dies zu tun, ist, nur die Seite dieser Seite einzuschließen.
Ihr Code verwendet also keine Variablen.
Es ist hart codiert.
Dies kann dazu führen, dass der Code länger wird, aber es ist viel sicherer.
Genau dies ist die Option für hohe Sicherheit.
Gehen wir also zuerst zum Dateieinbruch zurück.
Und wir sind im Tiefpunkt und wenn ich jetzt die Quelle anschaue, werden Sie feststellen, dass
im Grunde die Datei das ist, was Sie der Word-Datei übergeben haben.
Und Sie können sehen, dass es versucht, alles anzuzeigen, was wir senden.
Wenn wir also dieses ATC-Passwort senden, zeigt es uns das ATC-Passwort.
Jetzt werde ich das offen halten und die Sicherheitsstufe durchgehen
und die Sicherheitsstufe hoch einstellen.
Nun ist das Medium dem niedrigen ähnlich, so dass Sie das gleiche verwenden können, wie Sie es ausnutzen, wie
wir die Last ausnutzen.
Wir gehen also sofort zum Hoch, und wir werden uns die Quelle ansehen, und ich werde dies nur minimieren, da sie nicht über
die beiden Quellen verfügen, sodass wir sie vergleichen können.
Wie Sie hier in der niedrigen und mittleren Sicherheitsstufe sehen können, können Sie sehen,
dass alles, was wir durch die Datei sehr variabel bewegen, uns angezeigt wird, während Sie hier
in der hohen Sicherheitsstufe sehen, dass es hart codiert ist Es darf nur die Include-Datei angezeigt werden, sodass Sie diese if -Anweisung
ändern können.
Wenn Sie eine Reihe von Dateien haben möchten, die Sie einschließen möchten, können Sie sie hier zulassen oder in einer
Liste anzeigen lassen.
Das Prinzip ist jedoch, dass Sie nur die Dateien zulassen, die der Benutzer sehen darf.
Sie können sie also einfach in einer Liste anzeigen. Hier können Sie eine ODER-Anweisung verwenden. Sie können auch
eine Liste haben und sagen, wenn die Datei in dieser Liste angezeigt wird. Andernfalls wird ein Fehler ausgegeben, der besagt, dass die Datei nicht gefunden wurde.
So vermeiden Sie dies mit der hart codierten Methode.
Ja, es sieht nicht so hübsch aus, aber es ist viel sicherer.