
Bildungsressource zu Cross-Site-Scripting (XSS)-Angriffstechniken, die nicht-persistente, persistente und DOM-basierte Vektoren mit praktischen Beispielen für das Sicherheitslernen abdeckt.
Cross-site Scripting (XSS) ist eine Angriffstechnik, bei der vom Angreifer bereitgestellter Code in die Browserinstanz eines Benutzers eingespeist wird. Eine Browserinstanz kann ein Standard-Webbrowser-Client sein oder ein in einem Softwareprodukt eingebettetes Browserobjekt, wie etwa der Browser in WinAmp, ein RSS-Reader oder ein E-Mail-Client. Der Code selbst ist normalerweise in HTML/JavaScript geschrieben, kann sich aber auch auf VBScript, ActiveX, Java, Flash oder jede andere vom Browser unterstützte Technologie erstrecken. Wenn ein Angreifer den Browser eines Benutzers dazu bringt, seinen Code auszuführen, läuft der Code im Sicherheitskontext (bzw. in der Zone) der gehosteten Website. Mit dieser Privilegienstufe kann der Code alle sensiblen Daten lesen, ändern und übertragen, die für den Browser zugänglich sind. Ein von Cross-site Scripting betroffener Benutzer könnte die Übernahme seines Kontos (Cookie-Diebstahl) erleben, sein Browser könnte auf einen anderen Ort umgeleitet werden oder er könnte betrügerische Inhalte sehen, die von der von ihm besuchten Website geliefert werden. Cross-site-Scripting-Angriffe gefährden im Wesentlichen die Vertrauensbeziehung zwischen einem Benutzer und der Website. Anwendungen, die Browserobjektinstanzen verwenden, die Inhalte vom Dateisystem laden, können Code unter der lokalen Maschinenzone ausführen, was eine Kompromittierung des Systems ermöglicht.
Es gibt drei Arten von Cross-site-Scripting-Angriffen: nicht persistente, persistente und DOM-basierte. Nicht-persistente Angriffe und DOM-basierte Angriffe erfordern, dass ein Benutzer entweder einen speziell präparierten Link mit schädlichem Code besucht oder eine bösartige Webseite mit einem Webformular aufruft, das, wenn es an die verwundbare Website übermittelt wird, den Angriff startet. Die Verwendung eines bösartigen Formulars findet oft statt, wenn die verwundbare Ressource nur HTTP-POST-Anfragen akzeptiert. In einem solchen Fall kann das Formular automatisch ohne Wissen des Opfers übermittelt werden (z. B. mittels JavaScript). Beim Klicken auf den bösartigen Link oder beim Absenden des bösartigen Formulars wird die XSS-Nutzlast zurückgespiegelt und vom Browser des Benutzers interpretiert und ausgeführt. Eine weitere Technik, um nahezu beliebige Anfragen (GET und POST) zu senden, ist die Verwendung eines eingebetteten Clients wie Adobe Flash. Persistente Angriffe treten auf, wenn der bösartige Code auf einer Website eingereicht wird, wo er für einen bestimmten Zeitraum gespeichert wird. Beispiele für bevorzugte Ziele von Angreifern sind oft Forenbeiträge, Webmail-Nachrichten und Web-Chat-Software. Der ahnungslose Benutzer muss nicht mit einer zusätzlichen Website/einem zusätzlichen Link interagieren (z. B. einer Angreifer-Website oder einem per E-Mail gesendeten bösartigen Link), sondern lediglich die Webseite aufrufen, die den Code enthält.