【问题标题】:Cross Site Scripting in CSS StylesheetsCSS 样式表中的跨站点脚本
【发布时间】:2010-08-31 09:52:38
【问题描述】:

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

【问题讨论】:

    标签: css xss


    【解决方案1】:

    来自browser security handbook

    JavaScript 执行的风险。作为一个鲜为人知的特性,一些 CSS 实现允许将 JavaScript 代码嵌入到样式表中。至少有三种方法可以实现这一目标: 使用 expression(...) 指令,它可以评估任意 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 解析器来窃取来自不同域的内容。

    【讨论】:

    • 我听说过那本手册,但认为不值得一读。现在我愿意。感谢您的回答。 :) 所以 IE8 不支持标准模式下的 expression() 。 (只是想我会提到)
    【解决方案2】:

    OWASP Mutillidae项目页面上有一个Cascading Style Injection漏洞示例:http://localhost/mutillidae/index.php?page=set-background-color.php

    当然,您需要先在本地设置环境。您可以从以下链接在本地主机上下载并设置它: 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

    【讨论】:

    • 不知道为什么投反对票,但第一个链接针对的是您的本地主机。
    • @Tomor 是实验环境,只能在本地使用。我已经添加了一些解释。谢谢!
    • 感谢指点!然而,最后一个链接(到 github)现在已经死了。
    • @greg 感谢您指出这一点。我试图找到链接的替代品,但失败了……我想仍然可以在应用程序中找到提示。
    【解决方案3】:

    是的,它的调用 Xsstc ,请阅读本文了解更多信息:

    link

    【讨论】:

    • 我看过那个网站,但它看起来需要 JavaScript。
    • 我真的在寻找 FF 上 expression() 的替代方法
    • 找不到网站 :( 不提供任何示例。
    • 我现在修复链接。
    猜你喜欢
    • 2014-01-27
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多