这篇文章主要为大家展示了“什么是Apache Tika”,内容简而易懂,条理清晰,希望能够帮助大家解免费云主机域名决疑惑,下面让小编带领大家一起研究并学习一下“什么是Apache Tika”这篇文章吧。Apache Tika™工具包可从超过一千种不同的文件类型(如PPT,XLS和PDF)中检测和提取元数据和文本。所有这些文件类型都可以通过一个接口进行解析,使得Tika对搜索引擎索引,内容分析,翻译等非常有用。(https://tika.apache.org/)Apache Tika有几个不同的组件:Java库,命令行工具和自带REST API的独立服务器(tika-server)。此攻击特别针对独立服务器,它通过REST API公开https://wiki.apache.org/tika/TikaJAXRS。样本可在https://archive.apache.org/dist/tika/tika-server-1.17.jar找到。我们首先需要阅读issue,看看可以从中获取哪些信息。原始描述:在Tika 1.18之前,客户端可以将精心设计的标头发送到tika-server,该标头可用于将命令注入运行tika-server的服务器的命令行。此漏洞仅影响在对不受信任的客户端开放的服务器上运行tika-server的漏洞。我们可以从这个描述中看到的事情:1.版本1.18已修补;2.版本1.17未修补;3.该漏洞是命令注入;4.漏洞的入口点是“headers”;5.这会影响代码的tika-server部分。有了这些信息,我们现在有了一个识别漏洞的起点。下一步将看看Tika补丁和未补丁版本的差异,特别是tika-server部分。为Java中已知的执行操作系统命令的函数编写Grepping代码是另一个不错的选择。最后,搜索tika-server代码的各个部分,我们可以假设这些报头是某种HTTP请求。对tika-server 1.17与1.18源目录进行并行递归比较。只返回一个已修改的文件,如下部分。由于目标是在头字段中找到命令注入,所以第一个结果是一个代码块,这个代码块已经添加到补丁版本“ALLOWABLE_HEADER_CHARS”中。这是一个非常好的开始,假设这是补丁试图过滤可用于将命令注入头字段的字符。继续向下是一个名为“processHeaderConfig”的函数内部的代码,它已在1.18中删除。它使用一些变量来动态创建一个方法,该方法似乎设置了某个对象的属性,并使用HTTP头来执行此操作。以下是此功能的说明:截图显示了不同属性的前缀,并在此代码的开头定义为静态字符串。因此,我们有一些静态字符串可以作为HTTP头文件包含在请求中,并用于设置对象的某些属性。最终header的示例看起来像“X-Tika-OCRsomeproperty:somevalue”,然后将“someproperty”转换为类似于“setSomeproperty()”的函数,并将somevalue作为要设置的值传递给该函数。可以看到这里正在使用这个函数,并且在请求中检查了前缀头以确定如何调用该函数。然后,所有需要的参数都从HTTP请求传递到“processHeaderConfig”函数。查看使用“processHeaderConfig”函数的方式,可以看到正在“TesseractOCRConfig”对象上设置属性。搜索可能使用我们发现的“TesseractOCRConfig”对象的地方:tika-parsers/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java。这是来自“TesseractOCRParser.java”的“doOCR”函数,它将配置属性从我们刚刚发现的“TesseractOCRConfig”对象直接传递到一个字符串数组中,这些字符串用于构造“ProcessBuilder”的命令,然后该过程已开始。这看起来很有希望,如果我们将所有信息放在一起,我们应该能够向服务器发出某种HTTP请求,设置一个看起来像“X-Tika-OCRTesseractPath:
一、网络地址转换NAT: 在专用网内部的一些主机本来已经分配到了本地IP地址,但现在想和Internet上的主机进行通信,最简单的办法就是再申请一些全球的IP地址,但是全球的IPv4的地址已经不多了,所以采用了一种方法是网络地址转换。 在专用网连接到Inter…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。