-: In diesem Abschnitt
geht es um Penetrationstests für Webanwendungen.
Bevor wir darüber sprechen
können, müssen wir verstehen, was eine Website ist.
Wie ich bereits
sagte, ist eine Website nur eine Anwendung, die auf einem Computer installiert ist.
Dieser Computer hat wahrscheinlich nur bessere
Spezifikationen als
Ihr Computer, aber im Grunde funktioniert er genauso
wie ein anderer Computer.
Es verfügt über
ein Betriebssystem und eine Reihe von
Anwendungen, mit denen es als Webserver fungieren kann.
Die beiden wahrscheinlich wichtigsten
Anwendungen sind ein Webserver und eine Datenbank.
Ein Webserver ist wie Apache
und eine Datenbank ist wie MySQL.
Der Webserver versteht und führt die Webanwendung im
Grunde aus.
Ihre Webanwendung würde in PHP oder Python geschrieben sein,
und zwar in jeder Programmiersprache.
Das Einzige
ist, dass der Webserver
diese Webanwendung verstehen und ausführen kann.
Die Datenbank enthält die von der Webanwendung verwendeten Daten.
All dies wird auf einem Computer namens Server gespeichert.
Der Computer ist mit dem Internet verbunden und
verfügt über eine echte IP-Adresse,
sodass jeder auf diesen Computer zugreifen und ihn anpingen kann.
Die Webanwendung wird von dem Webserver ausgeführt,
der auf Ihrem Server auf Ihrem Ziel installiert ist.
Jedes Mal, wenn Sie eine Seite anfordern oder
die Webanwendung
ausführen, wird sie tatsächlich auf dem
Webserver ausgeführt und nicht auf dem Client-Computer.
Es wird auf dem
Webserver ausgeführt und sendet dann eine HTML-Seite, die für die
Zielperson oder für die Clients zum Lesen bereit ist.
Schauen wir uns ein Beispiel an.
Nehmen wir an, Sie sind am Telefon oder am Computer und wollten
auf Facebook gehen. com.
Also tippst du Facebook ein. com in Ihre URL.
Dies wird unter Verwendung eines DNS-Servers in eine
IP-Adresse übersetzt.
Es gibt einen Server, der jeden Namen übersetzt. com,. edu oder jede Website mit einem Domain-Namen, also
einem Domain-Namen, an die
entsprechende IP-Adresse.
Also fordern Sie Facebook an. com, die Anfrage geht an
einen
DNS-Server, übersetzt es Facebook. Gehen Sie zu der IP-Adresse,
in
der Facebook gespeichert ist, und rufen Sie die
IP-Adresse von Facebook auf. Anschließend wird die gewünschte Seite mit allen Anwendungen ausgeführt,
über die wir gesprochen haben, und
geben Sie einfach ein fertiges HTML aus.
Was Sie zurückerhalten, ist lediglich ein
in HTML geschriebenes Markup, eine Markup-Sprache, des Ergebnisses der
Ausführung des Programms.
Das Programm wird auf dem Server ausgeführt
und Sie erhalten nur das Ergebnis.
Dies ist sehr wichtig, denn wenn wir
in Zukunft etwas auf dem
Webserver ausführen lassen möchten, wenn wir eine
Shell,
eine Reverse-Shell oder einen Virus auf dem Zielcomputer
ausführen möchten, müssen wir ihn in
eine Sprache senden dass der Webserver versteht.
Zum Beispiel PHP.
Sobald Sie es dort ausführen, wird
es auf diesem Computer ausgeführt, nicht auf Ihrem Computer.
Unabhängig von der Person, die auf die Seite zugreift, wird die Web-Shell,
die Sie senden, wenn sie in PHP
in einer Sprache geschrieben ist,
die der
Server versteht, auf dem Server
und nicht auf Ihrem Computer ausgeführt.
Daher erhalten Sie Zugriff auf den Server
und nicht auf die Person, die auf diesen Server zugegriffen hat.
JavaScript, auf der anderen Seite gibt es einige Websites,
die JavaScript verwenden.
JavaScript ist eine clientseitige Sprache.
Wenn Sie eine Website finden,
auf der Sie JavaScript-Code ausführen können, wird
der Code von den Clients ausgeführt.
Obwohl der Code möglicherweise in den Webserver
eingefügt wird, wird er auf der Clientseite
ausgeführt und ermöglicht es
Ihnen, Dinge mit dem Clientcomputer und nicht mit dem Server zu tun.
Es ist sehr wichtig, zwischen einer clientseitigen und
einer serverseitigen Sprache zu unterscheiden.