Cross-Site-Scripting Grundlagen
XSS/Cross-Site-Scripting
- Ausnutzen von Sicherheitslücken in Webanwendungen
- Schädliche Skripte werden dabei in einen vertrauenswürdigen Kontext eingespeist
- System der Nutzer kann angeriffen werden
- Meist in JavaScript und/oder Quelltextdatei programmiert werden.
- harmlosen Varianten beispielsweise aufpoppende Fenster
- Worst Case - Zugriff auf vertrauliche Informationen
Gefahr
- Gefahr besteht wenn Benutzerdaten ohne Überprüfung an den Webbrowser weiterleitet werden
- Über XSS-Löcher gelangen die schädlichen Skripte zu den betroffenen Clients.
- Dort kommt es zur manipulieren serverseitige Skripte zur Benutzeranmeldung.
Es gibt 3 Arten des Cross-Site-Scripting/XSS
Reflektiertes Cross-Site-Scripting/XSS
- Schädliches Skript an den Webserver gesendet durch:
- Aufruf einer manipulierten URL
- Absenden eines präparierten Formulars wird das
- Webserver gibt Datenohne Überprüfung an den Client zurück
- Schadcode wird nicht auf dem Server gespeichert
- Beliebte Angriffsziele sind dynamische Websites
Persistentes Cross-Site-Scripting/XSS
- Schädlichen Skripte auf dem Webserver gespeichert
- Bei jedem Aufruf durch einen Client ausgeliefert.
- Ziele sind Rechner die Benutzerdaten ohne Überprüfung serverseitig speichern
- anfällig für diese Scripting-Art sind Blogs und Foren.
DOM-basiertes Cross-Site-Scripting/XSS
- Angriffsart wird auch lokales XSS genannt.
- Schadcode wird durch eine Lücke in einem clientseitigen Skript ohne Überprüfung ausgeführt.
- Webserver nicht an dem Prozess beteiligt.
- Statische Websites, welche die jeweilige Skript-Sprache unterstützen, sind gefährdet.
Schutzmaßnahmen für Internet-User
- Ausschalten der JavaScript-Unterstützung im Browser.
- Es gibt Add-ons, die Sie vor XSS-Angriffen schützen können.
- Beispiel Mozilla Firefox Erweiterung NoScript.
- Man kann Whitelisten setzen wenn diese sicher sind
Maßnahme der Website-Betreiber gegen XSS-Attacken
- Alle eingehenden Eingabewerte als unsicher betrachten.
- Alle Daten sollten entsprechend geprüft werden.
- Auch hier kann man Whitelisten anlegen
- Man kann Eingaben auf Ihrer Website zu scannen und nur vertrauenswürdige Inhalte zuzulassen,
- Exzellenten Schutz gegen Cross-Site-Scripting.
- Vorgeschaltete Webprotection(z.B. Sophos Webprotection)
- Datenausgabe sollte auch abgesichert werden
- Problematischen HTML-Metazeichen durch Zeichenreferenzen ersetzen
- Metazeichen werden normale Zeichen gewertet
- potenzielle eingeschleuste Skripte können nicht gestartet werden.
- Die meisten Programmiersprachen können dies.