2010-08-31 179 views
35

是否可以在CSS样式表中使用跨脚本脚本?例如,参考样式表包含恶意代码,您将如何执行此操作? 我知道你可以使用样式标签,但样式表呢?CSS样式表中的跨站脚本

回答

32

browser security handbook

JavaScript执行的风险。作为一个鲜为人知的功能,一些CSS实现允许将JavaScript代码嵌入到样式表中。至少有三种方法可以实现此目标:使用表达式(...)指令,该指令可以评估任意JavaScript语句并将其值用作CSS参数;通过在支持它的属性上使用url('javascript:...')指令;或者通过调用浏览器特有的功能,如-moz-binding mechanism of Firefox

...并在阅读后,我发现这在StackOverflow。请参阅Using Javascript in CSS 在Firefox中,您可以使用XBL通过CSS在页面中注入JavaScript。但是,XBL文件必须位于相同的域中,现在是bug 324253 is fixed

还有一个有趣的(虽然不同于你的问题)滥用CSS的方式。见http://scarybeastsecurity.blogspot.com/2009/12/generic-cross-browser-cross-domain.html。本质上,你滥用CSS解析器来窃取来自不同域的内容。

+0

我听说过那本手册,但并不认为这值得一读。现在我知道了。感谢你的回答。 :)因此,IE8不支持标准模式下的表达式()。 (只是想我会提起) – Johnny 2010-09-01 06:39:20

3

的OWASP Mutillidae项目有页面上的层叠样式注入漏洞例如:http://localhost/mutillidae/index.php?page=set-background-color.php

当然,你需要设置局部ENV第一。您可以下载并从以下链接设置它在本地主机: https://www.owasp.org/index.php/OWASP_Mutillidae_2_Project

下面是相关提示: https://github.com/hyprwired/mutillidae/blob/master/includes/hints-level-1/cascading-style-sheet-injection-hint.inc

+0

你能告诉我为什么downvote? – ZillGate 2015-03-29 02:37:14

+2

不知道为什么downvote,但第一个链接针对您的本地主机。 – Tomor 2015-03-31 08:54:14

+1

@Tomor这是一个实验性的环境,只能在本地使用。我已经添加了一些解释。谢谢! – ZillGate 2015-03-31 15:24:57