CSS 文件可以包含恶意软件吗?

信息安全 Web应用程序 网页浏览器 css
2021-09-03 05:16:32

我知道 javascript 文件可能包含恶意软件。但是,我不太确定 CSS 文件。它们只会影响页面的显示方式,对吗?我知道 css 文件可用于点击劫持,但我无法想象它们如何用于感染某人。如何使用 css 文件破坏机器?是否有任何使用 CSS 文件的恶意软件/漏洞利用示例?任何指针都会有所帮助。谢谢!

3个回答

是的:CSS 可以包含恶意软件,但根据我的经验,它通常与漏洞相关,例如http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3971

就它包含 JavaScript 而言,这肯定是一个媒介,尽管成功的利用通常应该受到浏览器、操作系统和 JavaScript 引擎中的漏洞的限制。在这种情况下,易受攻击的 ActiveX 控件也是一个因素。

CSS 规则实际上可以包含 JS 代码(至少有一些浏览器支持),所以从这个角度来看,CSS 可能“和”JS 一样糟糕。

如果您需要更多详细信息,此 SO 答案可能会有所帮助。 https://stackoverflow.com/a/482088

不受信任的数据有两种不同类型的问题:

  1. 它可以包含要直接执行的恶意代码(恶意软件)
  2. 它可以以这样的方式制作,它会导致您的合法应用程序行为不正常(利用)并执行一些不好的事情(有效负载)

JavaScript 确实属于第一类。当浏览器或 PDF 编写器供应商(或任何其他使用 JS 的软件供应商)没有足够注意他们的 JavaScript 引擎允许攻击者做什么时,可以编写 JavaScript 代码来损害您的系统。例如,XML 外部实体攻击使用 JavaScript 代码中的 XML 规范来访问他们不允许接触的文件。

CSS 文件自然不包含代码,但正如 cloudfeet 指出的那样,流氓 CSS 文件可以触发您的浏览器加载和执行包含脚本的外部文件。这意味着 CSS 文件可用于触发 JavaScript 执行(但如果安装了阻止脚本的浏览器扩展,它也可能会阻止此类脚本)。

除此之外,不包含代码的“静态”文件可能会通过包含(精心挑选的)利用浏览器中存在的错误或错误(称为漏洞)的虚假数据来伤害浏览器。浏览器无法处理这些虚假数据的方式将导致它执行攻击者正在寻找的操作。例如,它可能会将浏览器代码的执行重定向到包含机器指令的 CSS 文件的某个部分,而不是正常的浏览器代码。

这听起来不太可能,但实际上很多攻击都属于这一类。例如,JPEG 和 PNG 库有时会成为目标,因为它们是非常广泛使用的低级代码(浏览器和其他程序,如您的操作系统)。通常,浏览器会创建特定的进程,并具有用于解析文件和呈现网页的特权,以降低与运行此类代码相关的风险。

坏消息是您对此无能为力,并且在网络上不断暴露于危险之中。您唯一的帮助是使您的所有软件保持最新以减少攻击面。