Cross-Site Scripting (XSS)
Erlaubt Angreifern, schädlichen Skriptcode in Webseiten einzuschleusen, die von anderen Nutzern aufgerufen werden.
Was ist diese Schwachstelle?
Cross-Site Scripting (XSS) ist eine Schwachstelle, die es Angreifern ermöglicht, clientseitige Skripte (meist JavaScript) in Webseiten einzuschleusen, die von anderen Nutzern aufgerufen werden. Es gibt drei Haupttypen: Stored XSS (das Skript wird dauerhaft auf dem Server gespeichert, z.B. in der Datenbank), Reflected XSS (das Skript wird in der URL mitgesendet und in der Antwort zurückgegeben) und DOM-basiertes XSS (die Schwachstelle liegt im clientseitigen Code, der Benutzereingaben verarbeitet).
Wie nutzt ein Angreifer dies aus?
Ein Angreifer erstellt eine bösartige Eingabe mit JavaScript-Code. Bei Stored XSS sendet der Angreifer den Code über ein Formular (z.B. Kommentar, Profilfeld oder Plugin-Einstellung), das ihn ohne Bereinigung in der Datenbank speichert. Wenn ein anderer Nutzer (insbesondere ein Admin) die Seite lädt, führt der Browser das eingeschleuste Skript aus. Bei Reflected XSS erstellt der Angreifer einen Link mit dem bösartigen Code in einem URL-Parameter und bringt ein Opfer dazu, darauf zu klicken.
Mögliche Konsequenzen
- Stehlen von Session-Cookies und Authentifizierungs-Tokens zur Übernahme von Benutzerkonten
- Umleitung von Nutzern auf Phishing-Seiten, die der echten Seite täuschend ähnlich sehen
- Veränderung der visuellen Inhalte der Seite (Defacement)
- Keylogging zur Erfassung von Passwörtern und Kreditkartennummern
- Erzwingen von Aktionen im Browser des Opfers auf der Website (z.B. Ändern der Admin-E-Mail)
- Installation persistenter Backdoors über die Übernahme des Admin-Kontos
Wie schützen Sie sich
- Alle Ausgaben escapen: htmlspecialchars() oder Framework-eigenes Escaping für alle dynamischen Inhalte in HTML verwenden
- Eingaben validieren und bereinigen: Unerwartete Zeichen ablehnen und strenge Typprüfung aller Benutzereingaben durchführen
- Content Security Policy (CSP) verwenden: HTTP-Header hinzufügen, die einschränken, welche Skripte der Browser ausführt
- HttpOnly-Cookies verwenden: JavaScript den Zugriff auf Session-Cookies verwehren
- Ausgabe-Encoding implementieren: Daten kontextabhängig encodieren (HTML, JavaScript, URL, CSS)
Wie finden Angreifer diese Schwachstelle?
Angreifer entdecken XSS-Schwachstellen, indem sie Testpayloads wie <script>alert(1)</script> in jedes Eingabefeld, jeden URL-Parameter und jeden HTTP-Header einschleusen. Sie verwenden automatisierte Tools wie Burp Suite, XSStrike oder Browser-Entwicklertools, um zu identifizieren, wo Benutzereingaben ohne ordnungsgemäßes Encoding zurückgegeben werden. Fuzzing-Techniken testen Tausende von Encoding-Umgehungen und Filtervermeidungs-Strings.
Beispiel-CVEs aus unserer Datenbank
The Jetpack – WP Security, Backup, Speed, & Growth plugin for WordPress is vulnerable to Cross-Site Scripting via LaTeX markup within HTML elements in versions up to, and including, 3.9.1 due to insufficient input sanitization and output escaping. This makes it possible for attackers to inject arbitrary web scripts that execute in a victim's browser.
The Gravityforms plugin for WordPress is vulnerable to Reflected Cross-Site Scripting up to, and including, 1.9.15.11 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link.
The Tutor LMS plugin for WordPress is vulnerable to Reflected Cross-Site Scripting in versions 2.0.0-2.0.8 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link.
The Ninja Forms Contact Form plugin for WordPress is vulnerable to Cross-Site Scripting in versions up to, and including, 2.9.28 due to insufficient input sanitization and output escaping during form submission. This makes it possible for attackers to inject arbitrary web scripts that execute in a victim's browser.
The WP Statistics plugin for WordPress is vulnerable to Multiple Cross-Site Scripting via several parameters in versions before 8.3.1 due to insufficient input sanitization and output escaping. This makes it possible for attackers to inject arbitrary web scripts that execute in a victim's browser.
... und 10,519 weitere in unserer Datenbank
Typische Auswirkung
Session-Hijacking, Diebstahl von Zugangsdaten, Defacement, Phishing-Angriffe.
Empfohlene Maßnahme
the affected plugin auf die neueste Version aktualisieren. Sicherstellen, dass alle Benutzereingaben korrekt bereinigt und escaped werden.
Ist Ihre WordPress-Seite von dieser Art von Schwachstelle betroffen?
Jetzt Ihre Seite scannen