![]() |
|
URL dieser Newsmeldung:
01.11.2007
About Security #129: Cross-Site Scripting, reloadedCross-Site-Scripting-Schwachstellen wurden bereits in About Security #14 und #15 vorgestellt. Allgemein gesagt, wird beim Cross-Site Scripting (XSS) das Vertrauen des Benutzers bzw. seines Browsers in eine Webseite ausgenutzt: "Von einer vertrauenswürdigen Webseite mitgelieferter JavaScript-Code ist vertrauenswürdig". Diese so genannte Same Origin Policy erlaubt dem JavaScript-Code, die Seite zu ändern und vom eigenen Server Daten nachzuladen. Nach der Beschreibung der Grundlagen in About Security #14 und #15 geht es jetzt weiter ins Detail. Unheimliche Begegnung der dritten ArtWährend früher nur zwei Arten von XSS (reflektiertes und persistentes) bekannt waren, ist durch die intelligenteren Clients des Web 2.0 eine dritte hinzugekommen: DOM-basiertes oder lokales XSS. Damit werden jetzt folgende drei Arten von XSS unterschieden:
N E U ! Security
aktuell Reflektiertes und am Rande auch persistentes XSS wurden bereits in About Security #14 und #15 beschrieben, im Folgenden geht es daher speziell um DOM-basiertes XSS. Diese Schwachstellen wurden erstmals 2005 von Amit Klein in seinem Paper "DOM Based Cross Site Scripting or XSS of the Third Kind" beschrieben. DOM-basiertes XSS unterscheidet sich in einem Punkt von reflektiertem oder persistentem XSS: Der Schadcode ist zu keiner Zeit Bestandteil der vom Server gelieferten "rohen" HTML-Seite – der Server, ein IDS/IPS oder eine Web Application Firewall können ihn darin also nicht erkennen.
Eine Webseite ist immer dann für DOM-basiertes XSS anfällig, wenn
sie Daten aus vom Angreifer kontrollierbaren Objekten wie z.B.
Eine Webseite enthält den folgenden Code:
Hallo Beim Aufruf dieser Seite wird der Benutzer mit seinem Namen begrüßt, z.B. beim Aufruf von
http://www.beispiel.example/index.html?name=Anton Der übliche XSS-Test mit
http://www.beispiel.example/index.html?name=<script>alert('XSS')</script>
führt dagegen zum Öffnen der Alertbox. Dieses Beispiel funktioniert nicht, wenn der Webbrowser den URL selbstständig URL-kodiert, wie es z.B. Mozilla und Firefox tun. Dadurch werden die < und > zu %3C bzw. %3E, was die spätere Codeausführung verhindert. Die Umkodierung verhindert aber keine Angriffe, die nicht auf < und > angewiesen sind.
Der Angriff ist möglich, weil der Browser beim Aufruf des
präparierten URLs einen HTTP-Request an
Hallo Die fertiggestellte HTML-Seite wird dann geparst – und dabei der eingeschleuste Skriptcode ausgeführt. In der nächsten Folge werden u.a. die Tarnung des Schadcodes und mögliche Gegenmaßnahmen behandelt. Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen! About Security – Übersicht zum aktuellen Thema "Sichere Webanwendungen – Cross-Site Scripting"
|
||
|