弱口令

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接口权限

image-20240718152527445

image-20240718152550238

找到登录页面之后尝试tomcat的弱口令,tomcat+tomcat成功登录。

之后就发现可以进行上传文件的操作

image-20240718152630257

上传war包getshell,上传完成之后就可以看到多了一栏数据,war包就是把码天骄到压缩包,改后缀再上传

image-20240718153257830

image-20240718153437202

也是成功访问,用冰蝎连接试试

image-20240718153649051

CVE-2017-12615:PUT方法任意写文件漏洞

  1. 访问主页
http://172.16.14.148:8080

image-20240718151205060

2.抓包

image-20240718151223790

3.修改方法

在上传文件的时候需要对文件后缀名进行修改绕过

org.apache.jasper.servlet.JspServlet:默认处理jsp,jspx文件请求,不存在PUT上传逻辑,无法处理PUT请求
org.apache.catalina.servlets.DefaultServlet:默认处理静态文件(除jsp,jspx之外的文件),存在PUT上传处理逻辑,可以处理PUT请求。
所以我们即使可以PUT一个文件到服务器但也无法直接PUT以jsp,jspx结尾文件,因为这些这些后缀的文件都是交由JspServlet处理的,它没法处理PUT请求。

但是当我们利用Windows特性以下面两种方式上传文件时,tomcat并不认为其是jsp文件从而交由DefaultServlet处理,从而成功创建jsp文件,这也就是所谓的CVE-2017-12615漏洞。

给文件后缀加一个 “ / ” ,变为 myshell.jsp/,这个/很关键

image-20240718151321666

4.冰蝎连接

image-20240718151718092

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

image-20240726180058968

从Github克隆POC脚本到本地:

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

image-20240726193752818