Cross Site Scripting in CSS Stylesheets

From the browser security handbook

The risk of JavaScript execution. As a little-known feature, some CSS implementations permit JavaScript code to be embedded in stylesheets. There are at least three ways to achieve this goal: by using the expression(…) directive, which gives the ability to evaluate arbitrary JavaScript statements and use their value as a CSS parameter; by using the url(‘javascript:…’) directive on properties that support it; or by invoking browser-specific features such as the -moz-binding mechanism of Firefox.

… and after reading that, I find this on StackOverflow. See Using Javascript in CSS
In Firefox, you can use XBL to inject javascript in a page via CSS. However, the XBL file must reside in the same domain, now that bug 324253 is fixed.

There is another interesting (though different from your question) way to abuse CSS. See http://scarybeastsecurity.blogspot.com/2009/12/generic-cross-browser-cross-domain.html. Essentially, you misuse the CSS parser to steal content from a different domain.

Leave a Comment