Excel 公式中的外部命令执行

信息安全 脆弱性 办公室 擅长
2021-08-25 07:05:19

众所周知,外部引用的 MS Excel 功能将允许从其公式执行任意命令,并需要用户提供适当的安全警告和确认。

例如,在包含公式的 excel 工作表(或由 excel 打开的 csv 文件)中有一个单元格=cmd|' /C calc'!A1将以可以扩展为运行任意代码的方式运行 calc.exe。

然而,这引发了两个问题:

  1. 此功能的详细信息是否记录在任何地方?外部参考的MS Office文档不这样做。

  2. Excel for Mac 中是否有等效的结构?特定示例不起作用,但也可能是因为 cmd(和 calc)是特定于 Windows 的命令名称;如果外部执行是有意的(因为那些旧漏洞尚未删除,只是添加了警告),它也应该在 Excel for Mac 中实现。

1个回答

运行任意代码的功能是微软有意添加的功能。早在 Office 发布时,整个威胁的形成就不同了,我们没有像今天那样共享文件。而且由于微软讨厌删除功能并破坏向后可比性,我们仍然必须处理这个问题。

  1. 此功能的详细信息是否记录在任何地方?外部参考的 MS Office 文档不这样做。

=cmd似乎记录不充分,无法在Excel 函数列表(按字母顺序)中找到它,但是 VB 文档有关于如何启动计算器的示例代码Here

  1. Excel for Mac 中是否有等效的结构?特定示例不起作用,但也可能是因为 cmd(和 calc)是特定于 Windows 的命令名称;如果外部执行是有意的(因为那些旧漏洞尚未删除,只是添加了警告),它也应该在 Excel for Mac 中实现。

是的,Office 2011 可以运行任意代码POC,在 Office 2016 中,微软添加了一个沙箱,但它有问题:ref