Tomcat任意文件上传漏洞

Posted 字节脉搏实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat任意文件上传漏洞相关的知识,希望对你有一定的参考价值。

文章源自【字节脉搏社区】-字节脉搏实验室

作者-Jadore

扫描下方二维码进入社区

Tomcat任意文件上传漏洞CVE-2017-12615

Tomcat安装目录下的配置文件web.xml中的org.apache.servlets.DefaultServlet方法下有该代码则表示Tomcat已经开启可PUT方法(readonly=false),导致我们可以往服务器写文件:

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

因此我们可以通过PUT方式上传木马

同时如果要防御该类漏洞将false改为true即可,即不允许DELETE和PUT操作

查看Tomcat版本知道存在远程代码执行

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

直接使用curl命令进行PUT上传

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

利用这点可以写入jspwebshell

附上python检测脚本:

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat AJP 文件包含漏洞CVE-2020-1938

Ghostcat(幽灵猫) 是由长亭科技安全研究员发现的存在于 Tomcat 中的安全漏洞,由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。

Tomcat AJP Connector

Tomcat Connector 是 Tomcat 与外部连接的通道,它使得 Catalina 能够接收来自外部的请求,传递给对应的 Web 应用程序处理,并返回请求的响应结果。

默认情况下,Tomcat 配置了两个 Connector,它们分别是 HTTP Connector 和 AJP Connector:

HTTP Connector 就是用来提供我们经常用到的 HTTP Web 服务。而 AJP Connector,它使用的是 AJP 协议(Apache Jserv Protocol),AJP 协议可以理解为 HTTP 协议的二进制性能优化版本,它能降低 HTTP 请求的处理成本,因此主要在需要集群、反向代理的场景被使用。

查看8009端口是否开启,即AJP服务

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

验证漏洞存在可以使用xray:

https://github.com/chaitin/xray

附上检测EXP:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

命令:python3 CNVD-2020-10487-Tomcat-Ajp-lfi.py -p 8009 -f WEB-INF/web.xml

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat8+ 弱口令 && 后台getshell漏洞

Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。

Tomcat7+权限分为:

manager(后台管理)

manager-gui 拥有html页面权限

manager-status 拥有查看status的权限

manager-script 拥有text接口的权限,和status权限

manager-jmx 拥有jmx权限,和status权限

host-manager(虚拟主机管理)

admin-gui 拥有html页面权限

admin-script 拥有text接口权限

在conf/tomcat-users.xml文件中配置用户的权限:

命令:

docker exec -ti tomcat8_tomcat_1 /bin/bash

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

可见,用户tomcat拥有上述所有权限,密码是tomcat。

正常安装的情况下,tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。

访问http://192.168.42.128:8080/manager/html,tomcat-tomcat进行登录

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

上传war包中1.jsp内容如下:

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

Tomcat任意文件上传漏洞

访问http://192.168.42.128:8080/2/1.jsp?pwd=a&cmd=whoami即可

Tomcat任意文件上传漏洞

通知!

记得扫码

以上是关于Tomcat任意文件上传漏洞的主要内容,如果未能解决你的问题,请参考以下文章

tomcat漏洞挖掘之暴力破解和任意文件上传

漏洞复现 - Tomcat任意文件上传漏洞(CVE-2017-12615)

tomcat漏洞之任意文件上传(CVE-2017-12615)

tomcat漏洞之任意文件上传(CVE-2017-12615)

任意文件读取漏洞的利用指南

Tomcat PUT方法任意写文件漏洞