Cross-Site Scripting (XSS) ist eine Sicherheitslücke, ist eine Sicherheitslücke, die in der Regel auf Websites und/oder in Webanwendungen auftritt, die Benutzereingaben akzeptieren. Beispiele hierfür sind Suchmaschinen, Anmeldeformulare, Message Boards und Kommentarfelder.
Inhalt
Cyberkriminelle nutzen diese Schwachstelle, indem sie Zeichenfolgen von ausführbarem bösartigem Code in diese Funktionen eingeben. Dadurch wird der bösartige Code in den Inhalt der Zielwebsite eingespeist, was ihn zu einem Teil der Website macht und somit Opfer betrifft, die diese Website besuchen oder ansehen können. Der Code kann auch als vorübergehender Inhalt auftreten, der eigentlich nicht Teil der Website ist, sondern nur für den Besucher so erscheint. Dadurch sieht es so aus, als sei die Website tatsächlich von Cyberkriminellen kompromittiert worden.
Cyberkriminelle können diese Schwachstelle auch nutzen, um die Kontrolle über eine Website zu übernehmen oder diese direkt zu kompromittieren. Außerdem können sie andere vorhandene Schwachstellen auf dem Server oder in der Software der Website ausnutzen.
Cyberkriminelle wählen ihre Zielwebsite aus und untersuchen ihre anfälligen Funktionen, die Benutzereingaben akzeptieren. Beispiele sind Suchleisten, Anmeldeformulare und Kommentarfelder.
Die Angreifer geben bösartigen Code in die Funktion ein, die sie auswählen. Der Schadcode könnte unter anderem mit Programmiersprachen wie HTML oder JavaScript geschrieben worden sein.
Der bösartige Code wird in die Webseite eingefügt, die aus der Funktion resultiert (Suchergebnisse oder ein Kommentar auf einer Kommentarseite). Es wird dann Teil dieser Webseite und macht sie damit unsicher.
Abhängig davon, wie der Code eingespeist wird, befinden sich die bösartigen Inhalte möglicherweise nicht einmal auf der eigentlichen Webseite selbst. Vielmehr handelt es sich um ein vorübergehendes Element, das nur während des jeweiligen Ausnutzungsvorgangs als Teil der Website erscheint. Dies kann den Eindruck erwecken, dass die eigentliche Website tatsächlich kompromittiert ist, obwohl dies nicht der Fall ist..
Benutzer können Opfer der kompromittierten Webseite werden, indem sie entweder von den verantwortlichen Cyberkriminellen darauf weitergeleitet werden oder zufällig darauf stoßen, je nachdem, welche Funktion die Täter missbrauchen wollten.
Die Routinen, die der injizierte Code auf dem System eines Opfers ausführen könnte, können von harmlos lästig bis hin zu regelrecht bösartig reichen. Das kann so harmlos sein wie ein unerwartetes Bild, das unter den rechtmäßig veröffentlichten Inhalten auf dieser Website angezeigt wird. Es kann aber auch etwas sein, das den Benutzer auf eine bösartige Website umleitet und/oder automatisch schädliche Dateien auf sein System herunterlädt. Der Code kann auch dazu eingesetzt werden, kritische personenbezogene Daten vom Opfer zu stehlen, zum Beispiel Anmeldedaten.
Mit XSS können Cyberkriminelle vertrauenswürdige Websites in bösartige verwandeln und so nicht nur den Opfern schaden, sondern auch dem Ruf des Eigentümers der vertrauenswürdigen Website.
Websites, die durch XSS kompromittiert sind, können eine Vielzahl von Bedrohungen für das System eines Benutzers darstellen. Dies kann alles umfassen, von unangemessenen Inhalten bis hin zu Malware, die auf das System heruntergeladen wird, ohne dass der Benutzer davon weiß.
So gefährlich XSS auch ist, gibt es doch Möglichkeiten, eine solche Schwachstelle zu beheben. Website-Betreiber müssen sicherstellen, dass alle ihre Webanwendungen, die Benutzereingaben akzeptieren, diese so verarbeiten, dass die eingegebenen Zeichenfolgen zunächst bereinigt werden, bevor die resultierende Seite der Eingabe erstellt wird. Dadurch wird verhindert, dass Code injiziert wird. Nutzer hingegen sollten Skripting in ihren Browsern deaktivieren und darauf verzichten, auf Links von verdächtigen Parteien oder Absendern zu klicken.
Stellen Sie sicher, dass jede Seite auf ihrer Website, die Benutzereingaben akzeptiert, Codeeingaben wie HTLM und JavaScript herausfiltert.
Suchen Sie nach Schwachstellen von Webanwendungen und beheben Sie diese entsprechend.
Aktualisieren Sie ihre Website- und Serversoftware, um eine zukünftige Ausnutzung von Schwachstellen zu verhindern, die auch durch einen XSS-Angriff angegriffen werden können.
Deaktivieren Sie die Skripterstellung auf Seiten, auf denen sie nicht erforderlich sind, oder deaktivieren Sie sie vollständig.
Verzichten Sie darauf, auf Links in verdächtigen E-Mails oder Posts auf Message Boards zu klicken, da diese zu kompromittierten Seiten führen können.
Greifen Sie direkt über ihre Adresse auf die gewünschten Websites zu und nicht über eine Quelle oder einen Link eines Drittanbieters.
Aktualisieren Sie ihre Systemsoftware und Anwendungen regelmäßig, um die Ausnutzung sekundärer Schwachstellen zu verhindern.
Laut Open Web Application Security Project (OWASP) fallen XSS-Angriffe in eine von drei Kategorien: reflektiertes XSS, gespeichertes XSS und Document Object Model (DOM) XSS. Diese sind unten aufgeführt.
Ein reflektierter XSS-Angriff tritt auf, wenn ein Hacker ein bösartiges Skript an eine anfällige Webanwendung sendet, das der Server dann in der HTTP-Antwort zurückgibt. Der Browser des Opfers führt das bösartige Skript als Teil der HTTP-Antwort aus, gefährdet den legitimen Benutzer und sendet private Informationen zurück an den Hacker.
Reflektierte XSS-Angriffe nehmen in der Regel Fehlermeldungen oder Ergebnisseiten von Suchmaschinen ins Visier, da es einfach ist, eine bösartige E-Mail mit einem Link zu versenden, auf den viele Benutzer klicken werden. Wenn der Benutzer auf den Link klickt, erhält der Server die Anforderung, die das bösartige Skript enthält, und da es nicht gespeichert ist, antwortet er, indem er einen Code zurück an den Benutzer sendet. Wenn Benutzereingaben nicht ausreichend validiert und bereinigt werden oder wenn Daten aus einer Anfrage unsicher dupliziert werden, besteht das Risiko von reflektierten XSS-Schwachstellen.
Die erste Verteidigungslinie gegen XSS-Angriffe besteht darin, Inhalte zu filtern und Benutzereingaben zu überprüfen. Mithilfe der Safelists und Blocklists von Skriptanbietern lassen sich etwa riskante Datenmuster abwehren.
Darüber hinaus kann eine strenge Content Security Policy (CSP) implementiert werden, um die Quelle von Inline-Skripten zu identifizieren und so das Risiko von reflektierten XSS-Angriffen zu verringern. Eine starke CSP gewährt die Kontrolle über Skripte und die Webseiten, auf denen diese geladen und ausgeführt werden dürfen.
Bei einem gespeicherten XSS-Angriff speichert ein bösartiges Skript Benutzereingaben auf dem Zielserver. Im Gegensatz zu einem reflektierten XSS-Angriff, der auf dem Server ausgeführt wird, läuft ein gespeicherter XSS-Angriff auf dem Browser des Benutzers. Angreifer verwenden dann moderne HTML5-Anwendungen, in der Regel mit HTML-Datenbanken, um schädliche Skripte dauerhaft im Browser zu speichern.
Bei einem gespeicherten XSS-Angriff wird das Skript gesichert und jedes Mal auf dem Server ausgeführt, wenn der Benutzer auf die betroffene Website zugreift. Für einen Angreifer ist es einfach, eine große Anzahl von Opfern ins Visier zu nehmen, und das Ergebnis ist dauerhaft. Gespeicherte XSS-Angriffe können auch auftreten, wenn ungeschulte Benutzer versuchen, Daten aus der Software zu extrahieren, ohne Vorsichtsmaßnahmen zur Bereinigung oder Validierung zu treffen.
Gespeicherte XSS-Angriffe zielen darauf ab, einem Benutzer ein bösartiges Skript zu vermitteln. Der einfachste Weg, diese zu verhindern, besteht also darin, Benutzerdaten zu bereinigen und Eingaben sorgfältig zu behandeln – und der beste Weg, sie zu verhindern, ist die Verwendung geeigneter Parameterbindung.
Daten können mit einem Template-System mit automatischer Escape-Funktion oder HTML-Kodierung bereinigt werden. Daten, die für die Ausgabe bestimmt sind, sollten codiert werden, um zu verhindern, dass der Server sie als aktiven Inhalt interpretiert. Das bedeutet, dass die Anwendung Sonderzeichen in ihren gespeicherten Daten als HTML-Tag-Content und nicht als einfaches HTML verarbeitet.
Die Bindung von Datenparametern (Daten) variiert je nach Vektor, aber Variablen lassen sich auch als zusätzliche Werte außerhalb der normalen Funktionalität der Funktion übergeben. Auch mit geeigneten Antwort-Headern lassen sich Angriffe verhindern, in der Regel durch Hinzufügen weniger Zeilen Code.
Eine weitere Technik, um XSS-Angriffe in Echtzeit zu verhindern, ist der Einsatz dynamischer Sicherheitsmaßnahmen, die aktiv nach Exploit-Versuchen suchen. Durch das Blockieren bekannter Muster können Sie Angreifer daran hindern, bestehende Sicherheitslücken auszunutzen.
Schließlich können Sie Web Application Firewalls (WAFs) zur Echtzeit-Erkennung und Abwehr von XSS-Angriffen einsetzen.
Die DOM-Schnittstelle ermöglicht die Verarbeitung und Manipulation von Webseiteninhalten durch Lesen und Ändern von HTML- und XML-Dokumenten. DOM-basierte XSS-Angriffe führen böswillige Änderungen am DOM-Kontext des Browsers des Opfers ein, wodurch der clientseitige Code unbeabsichtigt ausgeführt wird.
Im Gegensatz zu reflektierten und gespeicherten XSS-Angriffen speichern DOM-basierte XSS-Angriffe das bösartige Skript nicht und übermitteln es auch nicht an den Server. Bei diesem Angriff ist der Browser des Opfers die einzige Schwachstelle. Da sie schwieriger zu verstehen sind als andere Kategorien, sind DOM-basierte Schwachstellen selten, komplex und schwer zu beheben. Darüber hinaus können automatisierte Schwachstellen-Scanner und Web Application Firewalls sie nicht leicht identifizieren.
Zur Abwehr dieses Angriffs dienen dieselben Techniken wie bei den beiden anderen, allerdings muss dabei besonders sorgfältig darauf geachtet werden, den clientseitigen Code zu bereinigen. Zwei wirksame Lösungen sind, zu verhindern, dass benutzergesteuerte Quellen potenziell gefährliche JavaScript-Funktionen (sogenannte Sinks) ändern, oder nur vertrauenswürdige Inhalte mithilfe einer Safelist zuzulassen. Mit diesen Vorsichtsmaßnahmen werden Zeichenfolgen, die das DOM gefährden könnten, nicht an Sinks gesendet. Die Daten können auch mithilfe der integrierten Browserfunktionen bereinigt werden. Das reduziert das Risiko von Problemen im Zusammenhang mit Änderungen am Parser.
Eine neuartige Abwehrmaßnahme gegen diese Art von Angriffen ist die Verwendung von Trusted Types. Das ist ein Browser-Sicherheitsmechanismus, der sicherstellt, dass alle riskanten Teile des DOM nur von Daten verwendet werden können, die eine vordefinierte Richtlinie bestanden haben. Er verhindert, dass beliebige Zeichenfolgen an potenziell gefährliche Sinks weitergeleitet werden und hilft dem Browser dabei, zwischen Code und Daten zu unterscheiden – wodurch die Hauptursache für Sicherheitslücken beseitigt wird.
XSS-Angriffe werden entweder als Server-XSS oder Client-XSS kategorisiert. Clientseitige Programme laufen auf dem Gerät oder Browser des Kunden und übernehmen die Benutzeroberfläche und alle anderen Verarbeitungsprozesse, die auf dem Gerät des Kunden stattfinden. Serverseitige Programme arbeiten auf Servern und erstellen den Inhalt einer Webseite.
Serverseitiges XSS tritt auf, wenn der gesamte serverseitige Code anfällig ist, der Browser die Antwort rendert und alle darin eingebetteten legitimen Skripte ausführt. Clientseitiges XSS wird dagegen auf dem Gerät des Benutzers ausgeführt und verändert eine Webseite, nachdem diese geladen wurde.
Ein XSS-Angriff ist überall dort möglich, wo es HTML gibt. Unabhängig davon, ob sie gespeichert, reflektiert oder DOM-basiert sind, haben alle XSS-Angriffe die gleiche Wirkung: Ein Angreifer erlangt die vollständige Kontrolle über eine Web-Session.
Diese XSS-Angriffe können sich ebenfalls überschneiden, und eine Website kann für alle drei gleichzeitig anfällig sein. Bei einer einzelnen Website oder einer Offline-Anwendung können alle drei Angriffstypen direkt im Browser auftreten. Ihr Verhalten kann sich jedoch unterscheiden, abhängig davon, ob die Daten auf dem Server gespeichert oder vom Server reflektiert werden.
Cyberangriffe nehmen an Umfang, Komplexität und Wirkung zu. Von Ransomware und Phishing bis hin zu Angriffen auf Lieferketten und KI-gesteuerten Exploits – Angreifer passen sich ständig an, um Sicherheitsmaßnahmen zu umgehen und Schwachstellen auszunutzen. Ein Verständnis dieser Entwicklungen ist entscheidend für den Aufbau robuster digitaler Strategien.
Der aktuelle Bericht von Trend Micro bietet eine umfassende Analyse der sich wandelnden Bedrohungslandschaft, beleuchtet neue Angriffsvektoren, Risikomuster und strategische Empfehlungen für Unternehmen. Eine unverzichtbare Lektüre für alle, die Cyberangriffe besser verstehen und ihnen vorbeugen möchten.
Das Verständnis darüber, was ein Cyberangriff ist – sei es Ransomware, Phishing oder die Ausnutzung von Lieferketten – ist nur der erste Schritt. Der nächste besteht darin, eine proaktive Verteidigungsstrategie zu entwickeln, die sich an sich wandelnde Bedrohungen anpassen kann und Ihre Organisation über Endpunkte, Netzwerke, Cloud-Umgebungen und E-Mail-Systeme hinweg schützt.
Die Cybersicherheitsplattform für Unternehmen von Trend Micro, Trend Vision One, bietet umfassenden Schutz, unterstützt durch KI, erweiterte Erkennung und Reaktion (XDR) sowie Management der Cyberrisikoexposition. Sie ermöglicht Sicherheitsteams, Bedrohungen schneller und effektiver zu erkennen, zu untersuchen und darauf zu reagieren – und verwandelt Sichtbarkeit in Handlung und Risiko in Resilienz.
Jon Clay arbeitet seit über 29 Jahren im Bereich Cybersicherheit. Er nutzt seine Branchenerfahrung, um Wissen zu vermitteln und Einblicke in alle extern veröffentlichten Bedrohungsanalysen und -informationen von Trend Micro zu geben.
Cross‑Site‑Scripting ist eine Webschwachstelle, bei der Angreifer schädliche Skripte injizieren, Benutzer kompromittieren und vertrauliche Informationen über manipulierte Webseiten stehlen.
XSS funktioniert durch Einspeisen bösartiger Skripte in Webseiten, wodurch Angreifer Daten stehlen, Sessions übernehmen oder Nutzeraktionen manipulieren.
Verhindern Sie XSS durch Eingabevalidierung, Ausgabe‑Encoding, Content Security Policy, Sanitizing, sichere Frameworks und das Blockieren unsicherer Inline‑Skripte.
Ein Beispiel ist das Einschleusen von JavaScript in Formularfelder, wodurch Browser anderer Nutzer unerlaubten Code ausführen, ohne deren Wissen oder Zustimmung.
Ursachen sind fehlende Eingabevalidierung, unzureichendes Output‑Encoding, unsichere Datenverarbeitung und mangelnde Filterung innerhalb webbasierter Anwendungen.
Die drei Arten sind Stored XSS, Reflected XSS und DOM‑basiertes XSS, die unterschiedliche Schwachstellen in Webseitenprozessen ausnutzen.
XSS injiziert schädliche Skripte, während CSRF authentifizierte Benutzer täuscht, unbeabsichtigte Aktionen innerhalb vertrauenswürdiger Webanwendungen auszuführen.