2010-08-31 4 views
35

Kann Cross-Site-Scripting in einem CSS-Stylesheet verwendet werden? Zum Beispiel enthält ein Referenz-Stylesheet bösartigen Code, wie würden Sie das tun? Ich weiß, dass Sie Style-Tags verwenden können, aber was ist mit Stylesheets?Cross Site Scripting in CSS-Stylesheets

Antwort

32

Vom browser security handbook

Das Risiko der Ausführung von JavaScript. Als wenig bekannte Eigenschaft erlauben einige CSS-Implementierungen, dass JavaScript-Code in Stylesheets eingebettet wird. Es gibt mindestens drei Möglichkeiten, dieses Ziel zu erreichen: Durch die Verwendung der Anweisung expression (...) können beliebige JavaScript-Anweisungen ausgewertet und deren Wert als CSS-Parameter verwendet werden. mit der Direktive url ('javascript: ...') für Eigenschaften, die es unterstützen; oder indem browserspezifische Funktionen wie die -moz-binding mechanism of Firefox aufgerufen werden.

... und nachdem ich das gelesen habe, finde ich dies auf StackOverflow. Siehe Using Javascript in CSS In Firefox können Sie XBL verwenden, um JavaScript über CSS in eine Seite zu injizieren. Die XBL-Datei muss sich jedoch in derselben Domäne befinden, jetzt bug 324253 is fixed.

Es gibt eine andere interessante (wenn auch anders als Ihre Frage) Möglichkeit, CSS zu missbrauchen. Siehe http://scarybeastsecurity.blogspot.com/2009/12/generic-cross-browser-cross-domain.html. Im Wesentlichen missbrauchen Sie den CSS-Parser, um Inhalte aus einer anderen Domäne zu stehlen.

+0

Ich habe von diesem Handbuch gehört, aber nicht gedacht, dass es eine Lektüre wert war. Jetzt mache ich. Danke für die Antwort. :) Also IE8 unterstützt Ausdruck() im Standardmodus nicht. (Nur gedacht, ich würde erwähnen) – Johnny

3

Das OWASP Mutillidae Projekt hat ein Cascading Style Injection Verwundbarkeit Beispiel auf Seite: http://localhost/mutillidae/index.php?page=set-background-color.php

Natürlich müssen Sie zunächst lokal die env-Setup. Sie können es auf Ihrem lokalen Host auf den folgenden Link herunterladen und einrichten: https://www.owasp.org/index.php/OWASP_Mutillidae_2_Project

Hier der entsprechende Hinweis ist: https://github.com/hyprwired/mutillidae/blob/master/includes/hints-level-1/cascading-style-sheet-injection-hint.inc

+0

Könnten Sie mir bitte sagen, warum runter? – ZillGate

+2

Ich weiß nicht warum, aber der erste Link zielt auf Ihren lokalen Host-Rechner. – Tomor

+1

@Tomor Es ist eine experimentelle Umgebung und sollte nur lokal verwendet werden. Ich habe einige Erklärungen hinzugefügt. Vielen Dank! – ZillGate