首页 > 其他分享 >tomcat AJP 任意文件读取/包含漏洞(CVE-2020-1938)

tomcat AJP 任意文件读取/包含漏洞(CVE-2020-1938)

时间:2024-04-09 17:15:02浏览次数:16  
标签:文件 shell 读取 tomcat AJP 漏洞 1938

漏洞描述

Tomcat AJP协议中存在缺陷,攻击者可以读取或包含Tomcat的webapp目录中的任何文件。
漏洞危害:

  1. 读取 webapp 配置文件或源代码。
  2. 如果攻击者读取配置文件得到敏感用户名和下面,tomcat Web应用开放manager目录具有文件上传功能
    2.1 可以直接上传shell获取控制权,
    2.2 通过Ghostcat漏洞利用文件包含在目标主机上执行恶意代码(被包含的文件直接当做jsp代码执行)

tomcat默认情况下就会开启ajp协议的解析
tomcat开启了两个Connector,分别是http(8080)ajp(8009),AJP的处理比HTTP更加优化,可以在conf/server.xml中看到

至于AJP处理中详细的漏洞原理可以参考:
https://mp.weixin.qq.com/s/D1hiKJpah3NhEBLwtTodsg
https://mp.weixin.qq.com/s/GzqLkwlIQi_i3AVIXn59FQ

漏洞复现

使用vulhub复现该漏洞

cd vulhub/tomcat/CVE-2020-1938
sudo docker-compose up -d


启动成功,这里可以看到是版本为Tomcat/9.0.30

webapps目录内容读取

这里漏洞利用方法需要使用到exp,幸运的是searchsploit发现拥有两个一个是py脚本,一个是metasploit

这里我使用metasploit演示


默认读取的配置文件时web.xml,设置好参数直接尝试漏洞利用

成功运行,并且把读取到的文件内容保存到了/home/kali/.msf4/loot/20240409041816_default_192.168.154.138_WEBINFweb.xml_673554.txt
但是这个文件并没有太大的作用,我们只可以读取webapps目录下的内容,接着我们看下一个文件包含漏洞可以getshell

文件包含漏洞

该漏洞需要一定的条件(靶机存在一个jsp reverse-shell),但是为了模拟,这里我们手动生成一个上传到靶机中
使用msfvenom,这里只要是jsp reverse-shell都可以

在本机监听的meterpreter终端

这里需要换一个文件包含的脚本,地址:https://github.com/sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read/
脚本访问shell.jsp就会反弹一个shell

获得shell

漏洞修复

  1. 更新的最新的版本进行漏洞修复
  2. 临时取消ajp服务,在需要的时候启动,可以在/conf/server.xml中注释ajp配置信息,重启即可关闭

标签:文件,shell,读取,tomcat,AJP,漏洞,1938
From: https://www.cnblogs.com/Junglezt/p/18124130

相关文章

  • 【SpringBoot + Tomcat】请求到达后端服务进程后的处理过程
    1 前言这节我主要是想看下,Tomcat如何接收到请求并且是怎么一步步封装并交给SpringMVC处理的。这块之前一直没太深入的了解过,所以这节我们来看看。在看这节之前,你首先要清楚这两个问题,方便你更好的去理解。(1)SpringBoot启动的过程中,Tomcat的创建和启动时机是在什么时候呢?不......
  • tomcat弱口令后台getshell漏洞复现
    漏洞描述tomcat是一个用于快速部署jsp网站的中间件tomcat默认的管理页面manager使用basic认证用户名密码登录,可以使用burp进行爆破,并且一般安装后如果不修改/conf/tomcat-users.xml文件中的默认用户名密码tomcat:tomcat,可以登录管理后台,在部署war包后tomcat默认会将war包中的......
  • SpringBoot中的Tomcat(内嵌式)使用及分析
    前言Tomcat是我们在项目中使用最多的Web应用服务器,今天通过代码来简单分析下SpringBoot中是如何启动内嵌式Tomcat的。使用importjava.io.File;importjava.io.IOException;importjava.nio.charset.StandardCharsets;importjava.util.HashSet;importjava.util.Se......
  • windows环境下使用tomcat搭建文件服务器(带权限验证)
    操作系统:Windows11 jdk:jdk1.8tomcat版本:8.5.100 开始准备所需物料。tomcat下载地址:https://tomcat.apache.org/download-80.cgi选择windows64位选择64-bitWindowszip。查看tomcat版本说明支持,tomcat8支持1.7及以上,我这边下载1.8版本。jdk下载路径:https://www.or......
  • Java Tomcat7中使用Quartz2.2实现定时任务项目代码实例(demo)
    ​ 在Java中使用Quartz2.2结合Tomcat7实现定时任务是一种常见的需求,Quartz是一个强大的定时任务库,能够帮助开发者轻松实现复杂的定时任务调度。以下是一个简单的示例,展示如何在JavaWeb应用中集成Quartz来执行定时任务。 详细文档:JavaTomcat7中使用Quartz2.2实现定时任务......
  • windows 环境下启动多个tomcat
    在Windows环境下面测试tomcat集群时,由于在环境变量中配置了catalina_home,导致每次启动都会走默认的配置,无法启动多个tomcat 修改方法直接修改startup.bat文件,设置CATALINA_HOME默认值。设置成tomcat安装路径即可setCATALINA_HOME=D:\programs\tomcat-cluster\apache-tomcat-8......
  • Tomcat内存马回显
    回顾JSP马详情见:https://www.cnblogs.com/F12-blog/p/18111253之前说的都是利用jsp注入内存马,但Web服务器中的jsp编译器还是会编译生成对应的java文件然后进行编译加载并进行实例化,所以还是会落地。但如果直接注入,比如利用反序列化漏洞进行注入,由于request和respons......
  • Tomcat原理分析
    Tomcat内部结构内部可以分为两部分:HTTP服务器+Servlet容器。这里以内嵌Tomcat为例,启动类为TomcatTomcat里包含一个Server,类型为StandardServer。StandardServer中包含对个service,类型为StandardService,在创建StandardServer时添加了一个service对象。StandardService中......
  • tomcat 8.5 本地编译代码
    1、下载地址:https://tomcat.apache.org/download-80.cgi 2运行1)解压zip压缩包2)目录创建进入解压目录,并创建一个目录,命名为home,并将conf、webapps目录移入home目录中3)修改成maven项目在当前目录下创建一个pom.xml文件,引入tomcat的依赖包,改造成maven项目,pom文件......
  • tomcat CookieFilter类找不到
    在packageorg.apache.catalina.filters包中新建类CookieFilter,内容如下:packageorg.apache.catalina.filters;/**LicensedtotheApacheSoftwareFoundation(ASF)underoneormore*contributorlicenseagreements.SeetheNOTICEfiledistributedwith*t......