Bevor wir uns nun genauer damit befassen, wie man Schwachstellen ausnutzt und entdeckt, möchte ich kurz innehalten und kurz
zurückgehen und sehen, was genau passiert, wenn ein Benutzer auf einen bestimmten Link klickt.
Also haben wir hier die Kundenseite.
Dies ist also Ihr Computer mit der E-Mail-Website, die dem Benutzer angezeigt wird.
Dies alles wird also auf Ihren Computer geladen, auf den Client.
Und dann haben wir den Server, der den Code enthält, der ausgeführt wird, wenn die Website funktioniert
und Code verwendet.
Also, wenn Sie auf einen Link klicken.
Die E-Mail-Website oder die Client-Seite, ein Teil der Seite der Website, generiert eine Anfrage, so dass sie
die meiste Zeit keine Berechnungen durchführt.
Nun, manchmal gibt es clientseitigen Code und wir werden das sehen.
Aber normalerweise generiert der Code der Client-Site eine Anfrage, die an die Website, an den Webserver, gesendet wird,
und der Webserver verfügt über einen funktionalen Code wie BHP oder Python, Ruby oder eine beliebige Programmiersprache.
Und das ist die meiste Zeit, in der Code mit der Datenbank interagiert, irgendeine Art von Informationen
erhält und dann die Informationen als Antwort an die Website an den Browser sendet und der Browser als HTML
angezeigt wird.
So wird der Code, der Funktionscode oder der Berechnungscode üblicherweise serverseitig gespeichert.
Und die meisten dieser Websites funktionieren so, dass sie eine Anfrage generieren, sie an den Server, den Server,
senden, die Anfrage ausführen und zurücksenden.
Wenn wir also versuchen, uns in Websites zu hacken und sie auszunutzen, spielen wir normalerweise mit den Anfragen
und versuchen, diese Anfrage so zu ändern, dass sie einige Aktionen ausführt, die uns helfen würden, Informationen zu erhalten oder eine bestimmte
Art von Code auszuführen, der uns liefern würde eine umgekehrte Verbindung.
Nun gibt es zwei Arten von Anfragen: Get-Anfragen und Post-Anfragen.
Nehmen wir ein Beispiel, wenn wir also hier auf die letzte Inklusion eingehen, werden Sie sehen, dass
wir eine Variable namens Page haben, und deren Wert ist include that.
Hier handelt es sich also um eine Get-Anfrage, da wir die Werte davon in der URL sehen können.
Wir können also sehen, dass die Seite gleich das beinhaltet.
Diese Seite fordert also eine andere Seite an, eine weitere Seite namens Index Dot einzuschließen.
Wir werden jetzt nicht näher darauf eingehen, was das bedeutet.
Es geht uns nur darum, ein Beispiel zu haben, und das ist das Beispiel.
Dies ist also die Variable, für die wir einen Wert erhalten, nämlich Page, und wir geben ihr
den Wert include Dogpatch.
Das ist also eine Get-Anfrage.
Ein Beispiel für eine Post-Anfrage ist der Datei-Upload, also wenn wir zum Datei-Upload gehen, wenn Sie hier etwas
hochladen.
Also lade ich einfach mal was hoch.
Sie werden sehen, dass die URL nicht geändert wird, aber die Anfrage, ein Gefühl für die Website, das Bild wird tatsächlich
auf den Server hochgeladen und all das, aber die URL sieht immer noch gleich aus.
Aber die Website hat Informationen gesendet.
Die Hatami-Website hat also Informationen an den Server gesendet.
Sie haben die Informationen hier nur nicht gesehen, weil sie als Post gesendet wurden, anstatt sie zu erhalten.
So.
Das erste Problem ist jetzt, dass wir die Posterkosten nicht sehen können, wir können sie nicht ändern,
weil sie hier in der URL noch nicht angezeigt werden, wir können sie direkt aus der URL ändern.
Ein weiteres Problem ist, dass viele dieser Websites in Zukunft für die Sicherheit verwendet werden
und clientseitigen Code verwenden werden.
Wenn dies verwendet wird, wird die Anfrage tatsächlich geändert, bevor sie gesendet wird.
Es wird also Filter und andere Dinge geben, die auf der Client-Seite arbeiten, die unseren Code ändern, bevor wir ihn senden.
Die beste Möglichkeit, Anfragen abzufangen und die Post-Anfragen zu sehen, verwenden wir also einen
Proxy.
Der Proxy, den wir verwenden werden, ist der Geburts-Proxy.
Wie die Geburt ablaufen wird, ist, dass wir unseren Client hier haben und wir den Webserver haben, genau
wie wir ihn zuvor gesehen haben, und wir haben die E-Mail-Website auf unserem Süßigkeitenautomaten geladen.
Wenn wir die Anfrage stattdessen senden, statt sie direkt an den Webbrowser zu senden, konfigurieren wir unseren Browser tatsächlich
so, dass er die Anfrage an berp sendet.
Das ist also unser Proxy, der hier läuft.
Berp sieht alle Parameter, die auf der Website veröffentlicht werden.
Wir werden also die Post-Anfragen sehen, um Anfragen zu erhalten, und wir werden sie sehen.
Immerhin wurde der Client-Code angewendet.
Einige Websites wenden also Clydeside-Code an, wie ich bereits sagte, bevor sie die Anfrage senden.
So können wir die Anforderungen sehen, nachdem der Client-Site-Code angewendet wurde.
Dies ist sehr wichtig, da viele Websites die Filterung als Client-Seite verwenden und wir dann alle
diese Filter umgehen können, indem wir die Anfrage abfangen.
Sobald wir die Anfrage in berp geändert haben, leiten wir sie an die Website weiter.
Die Website wird es ausführen und an uns zurückgeben.
All dies wird im nächsten Vortrag klarer, da wir berp proxy in der Praxis verwenden, um Anfragen abzufangen
und zu ändern.