* **严重性评分** :根据CVSS基础评分指标,该漏洞的严重性评分为8.1。(CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)
漏洞类型为命令注入。这是因为易受攻击的应用程序将未经处理的用户数据传递给系统shell,从而允许执行恶意代码。如果将此类漏洞与代码注入进行比较,我们会发现一些差异。例如,代码注入允许攻击者使用由应用程序执行的自有代码;而命令注入则允许攻击者修改应用程序的功能,从而让用户运行系统命令。
* **触发漏洞后可实施的攻击类型** :触发漏洞后,我们可以轻松创建反向shell,凭借该shell,我们基本上可以执行运行Apache Tika服务器的用户有权访问的所有命令。
* **攻击者如何利用该漏洞攻击易受攻击的系统** :首先,攻击者应确定目标服务器是否运行着易受攻击的Apache Tika服务器版本。然后,攻击者构造恶意HTTP头部和JScript代码,向易受攻击的HTTP端点发送PUT请求,这会导致Apache Tika服务器利用其自身功能执行恶意代码。
* **该漏洞是否被用于漏洞利用工具包** :是的,该漏洞已包含在Metasploit利用工具包中。
”会获取“X-Tika-OCRTesseractPath”头部并将其附加到命令的开头。尽管在用户提供的路径末尾附加了“tesseract.exe”字符串,但用户可以通过使用双引号包裹自己的路径来丢弃随后的“tesseract.exe”字符串。这允许用户在服务器上运行任何可执行文件。
"calc.exe"tesseract.exe C:\Users\Test\AppData\Local\Temp\apache-tika3299124493942985299.tmp C:\Users\Test\AppData\Local\Temp\apache-tika7317860646082338953.tmp -l eng -psm 1 txt -c preserve_interword_spaces=0
Windows内置的CScript.exe是一种脚本语言,它接受脚本文件名并运行它,同时忽略其他参数。如果我们能提供一个为cscript构建的脚本,我们就可以在服务器上执行它。Apache Tika服务器将我们提供的图像保存在主体中,并将其保存为临时文件以运行OCR,因此我们不必发送图像二进制文件,而是直接发送一个字符串,该字符串将像二进制文件一样被保存。但Tika服务器会检查该二进制文件是否为图像,但jp2文件类型除外,后者会直接保存。该文件将作为参数传递给cscript可执行文件。但文件扩展名仍然是“.tmp”,而我们需要“.JScript”或“.vbs”扩展名。为了绕过这一点,我们可以让cscript忽略文件扩展名而直接运行“JScript”。Tika服务器还会将“config.getPageSetMode()”传递给命令,该值由用户在“X-Tika-OCRLanguage”头部中发送。如果我们将其改为字符串“//E:Jscript”,cscript将忽略文件扩展名,将脚本作为JScript运行。最后,主体中提供的字符串将成为待执行的载荷,该载荷还可以调用另一个控制台以获得对系统shell的完全访问权限。
"cscript.exe"tesseract.exe C:\Users\Test\AppData\Local\Temp\apache-tika3299124493942985299.tmp C:\Users\Test\AppData\Local\Temp\apache-tika7317860646082338953.tmp -l //E:Jscript -psm 1 txt -c preserve_interword_spaces=0
var oShell = WScript.CreateObject("WScript.Shell");
var oExec = oShell.Exec('cmd /c calc.exe');
报告,甚至已由Apache本身确认并修补。但为了证明这一点,我们可以使用metasploit进行另一个概念验证。
