vulhub-tomcat
弱口令
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接口权限
找到登录页面之后尝试tomcat的弱口令,tomcat+tomcat成功登录。
之后就发现可以进行上传文件的操作
上传war包getshell,上传完成之后就可以看到多了一栏数据,war包就是把码天骄到压缩包,改后缀再上传
也是成功访问,用冰蝎连接试试
CVE-2017-12615:PUT方法任意写文件漏洞
- 访问主页
http://172.16.14.148:8080 |
2.抓包
3.修改方法
在上传文件的时候需要对文件后缀名进行修改绕过
org.apache.jasper.servlet.JspServlet:默认处理jsp,jspx文件请求,不存在PUT上传逻辑,无法处理PUT请求 |
但是当我们利用Windows特性以下面两种方式上传文件时,tomcat并不认为其是jsp文件从而交由DefaultServlet处理,从而成功创建jsp文件,这也就是所谓的CVE-2017-12615漏洞。
给文件后缀加一个 “ / ” ,变为 myshell.jsp/,这个/很关键
4.冰蝎连接
CVE-2020-1938:文件包含
由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。
tomcat 配置了两个Connecto,它们分别是 HTTP 和 AJP :HTTP默认端口为8080,处理http请求,而AJP默认端口8009,用于处理 AJP 协议的请求,而AJP比http更加优化,多用于反向、集群等,漏洞由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件以及可以包含任意文件,如果有某上传点,上传图片马等等,即可以获取shell。
环境启动之后,进行端口扫描,查看8009端口是否处于开放状态
nmap -sV -p- 192.168.174.137 |
从Github克隆POC脚本到本地:
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi