CSV 可以包含恶意代码吗?

信息安全 代码执行 数据验证 CSV
2021-09-03 21:14:26

我正在使用一个允许用户上传由其他用户下载的 CSV 文件的系统。

系统验证(除其他外)所有 CSV 文件都可以由符合 RFC 4180 的解析器解析,并且是有效的 UTF-8。它确保在下载文件时,它们具有Content-Type: text/csv; charset=utf-8Content-Disposition: attachment; filename="download.csv".

有人担心该系统可能被用来传输恶意软件或恶意代码。

是否存在任何已知机制,恶意 CSV 文件可能导致收件人执行代码?如果是这样,是否有任何进一步的验证可以降低所带来的风险?

2个回答

是的,有一些恶意 CSV 文件导致随机“代码”执行的例子。人们选择在 MS Excel 或 Open Office 或具有宏执行功能的此类软件中打开 CSV 文件。

一些例子:

https://www.contextis.com//resources/blog/comma-separated-vulnerabilities/ https://hackerone.com/reports/72785

如果您的环境不使用 MS Excel 等流行应用程序打开 CSV,则风险会大大降低。我还会在下载的 CSV 文件中寻找外部的、潜在的恶意链接,这些链接可能会托管路过式下载(因此您希望避免访问这些链接)。

是的,它可能包含将在您打开 CSV 文件的机器上执行的任意系统命令。您的电子表格软件会将 CSV 值呈现为注入的命令,并在给您多个警告后执行。

示例 - 使用以下 2 行创建一个 CSV 文件 -

用户名、电子邮件、职务

=2+5+cmd|' /C calc'!A0,a@b.com,SSE

保存并使用 MS excel 打开。计算器将在您的 Windows 系统中打开。

如需进一步阅读 -