Skip to content
cve-2018

cve-2018

Sploitus September 12, 2026

* **严重性评分** :根据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利用工具包中。

![](

![](

Apache Tika服务器构造要执行的命令,其命令中的值由用户在对图像执行OCR的请求中提供。这使得用户可以操控该命令并执行恶意代码。在此例中,“config.getTesseractPath()”会获取“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');

![](

![](

![](

然后我们执行了构造的利用代码,载荷为“calc.exe”,以在目标机器上运行计算器,从而证明我们能够在该目标机器上执行任意恶意代码。甚至通过反向shell的能力,我们可以在目标机器上创建一个交互式shell会话。

![](

如上所述,通过此利用代码,我们在目标机器上执行了计算器程序,但凭借远程代码执行的能力,我们可以以运行Apache Tika服务器的用户权限在目标机器上执行任何操作。例如,我们可以访问用户文件、监控用户活动,甚至如果存在摄像头,我们还可以截图或拍照。

该漏洞已由可靠来源(如NIST)报告,甚至已由Apache本身确认并修补。但为了证明这一点,我们可以使用metasploit进行另一个概念验证。

![](

![](

确认版本后,我们可以配置metasploit会话,使用正确的IP和端口,然后运行“check”命令以验证目标是否易受攻击。

![](

最后,我们可以运行“exploit”命令开始利用,并通过在shell中输入“dir”来确认shell是否存活。至此,唯一的限制是运行Apache Tika服务器的用户的权限。