【vulhub靶场】Tomcat中间件漏洞复现

【vulhub靶场】Tomcat中间件漏洞复现

  • 一、Tomcat AJP 任意文件读取/包含漏洞 (CVE-2020-1938)
    • 1. 漏洞描述
    • 2. 影响版本
    • 3. 漏洞原理
    • 4. 漏洞复现
  • 二、任意文件写入漏洞 (CVE-2017-12615)
    • 1. 漏洞原理
    • 2. 影响版本
    • 3. 漏洞复现
  • 三、Tomcat 弱密码 && 后端 Getshell 漏洞
    • 1. 漏洞描述
    • 2. 影响版本
    • 3. 漏洞复现

Tomcat介绍

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。

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

1. 漏洞描述

Apache Tomcat文件包含漏洞是由Tomcat AJP协议存在缺陷而导致,可利用该漏洞通过构造特定参数进行文件包含操作,进而读取受影响Tomcat服务器上的Web应用目录下的任意文件,如配置文件或源代码等。此外,如果目标应用有文件上传功能,攻击者还可以利用这个漏洞配合文件包含来实现远程代码执行,从而控制整个系统。

2. 影响版本

Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31

3. 漏洞原理

Tomcat 配置了两个Connecto,它们分别是 HTTP 和 AJP :HTTP默认端口为8080,处理http请求,而AJP默认端口8009,用于处理 AJP 协议的请求,而AJP比http更加优化,多用于反向、集群等,漏洞由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件以及可以包含任意文件,如果有某上传点,上传图片马等等,即可以获取shell

tomcat默认的conf/server.xml中配置了2个Connector,一个为8080的对外提供的HTTP协议端口,另外一个就是默认的8009 AJP协议端口,两个端口默认均监听在外网ip。
在这里插入图片描述

4. 漏洞复现

复现环境:vulhub靶场+kali2023

开启靶机

root@Fly:~/vulhub/tomcat/CVE-2020-1938# docker compose build
root@Fly:~/vulhub/tomcat/CVE-2020-1938# docker compose up -d

在这里插入图片描述

  1. 扫描靶机开放的端口
┌──(root㉿kali)-[/home/kali/Desktop]
└─# nmap -sV -p- 192.168.111.146

发现8080端口开启(AJP默认端口8009)

  1. 利用poc进行漏洞检测,若存在漏洞则可以查看webapps目录下的所有文件
┌──(root㉿kali)-[/home/kali/Desktop]
└─# git clone https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi      

在这里插入图片描述
3. 尝试读取8009端口下的web.xml文件

┌──(root㉿kali)-[/home/kali/Desktop]
└─# cd CNVD-2020-10487-Tomcat-Ajp-lfi 

┌──(root㉿kali)-[/home/kali/Desktop/CNVD-2020-10487-Tomcat-Ajp-lfi]
└─# python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py  -p 8009 -f /WEB-INF/web.xml 192.168.111.146

存在CVE-2022-1938漏洞,使用相关poc测试发现成功拉取到文件
在这里插入图片描述
在这里插入图片描述

二、任意文件写入漏洞 (CVE-2017-12615)

1. 漏洞原理

由于配置不当(非默认配置),将配置文件conf/web.xml中的readonly设置为了 false,导致可以使用PUT方法上传任意文件,但限制了jsp后缀的文件。
默认情况下 readonly 为 true,当 readonly 设置为 false 时,可以通过 PUT / DELETE 进行文件操控并可以执行任意代码。

2. 影响版本

主要影响的是Tomcat : 7.0.0-7.0.81

3. 漏洞复现

【vulhub靶场】
开启环境,并且查看配置文件conf/web.xml中的readonly是否设置为 false

root@Fly:~/vulhub/tomcat/CVE-2017-12615# docker compose build
root@Fly:~/vulhub/tomcat/CVE-2017-12615# docker compose up -d
root@Fly:~/vulhub/tomcat/CVE-2017-12615#  docker ps
CONTAINER ID   IMAGE    COMMAND    CREATED     STATUS    PORTS     NAMES
930557c071d3   cve-2017-12615-tomcat   "catalina.sh run"   20 minutes ago   Up 19 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   cve-2017-12615-tomcat-1

root@Fly:~/vulhub/tomcat/CVE-2017-12615#  docker exec -ti 930557c071d3 bash
root@930557c071d3:/usr/local/tomcat# ls
LICENSE  RELEASE-NOTES	bin   include  logs	       temp	work
NOTICE	 RUNNING.txt	conf  lib      native-jni-lib  webapps
root@930557c071d3:/usr/local/tomcat# cat conf/web.xml | grep readonly
  <!--   readonly            Is this context "read only", so HTTP           -->
<init-param><param-name>readonly</param-name><param-value>false</param-value></init-param>

在这里插入图片描述
可以看到这里Tomcat 设置了写入权限(readonly=false),这导致了我们可以将文件写入服务器的结果。

成功运行上述命令后,通过访问网站看到 Tomcat 的示例页面。http://your-ip:8080

在这里插入图片描述
抓包可以看到是GET方法,进行修改

在这里插入图片描述
修改为PUT方法,写入一个1.txt并向其文件中写入内容

在这里插入图片描述
然后进入服务器查看,成功将1.txt写入服务器中。

在这里插入图片描述
Tomcat 在一定程度上检查了文件后缀(不能直接写 jsp),直接上传导致报错,但我们还是可以通过一些文件系统功能绕过限制。
在这里插入图片描述
方法一:使用斜杠/,斜杠在文件名中是非法的,所以会被去除(Linux和Windows中都适用)

在这里插入图片描述
从服务器可以看到成功写入jsp后缀的文件
在这里插入图片描述
方法二:首先使用%20绕过。%20对应的是空格,在windows中若文件这里在jsp后面添加%20即可达到自动抹去空格的效果。

在这里插入图片描述
从服务器可以看到,成功上传jsp后缀的文件
在这里插入图片描述
方法三:使用Windows NTFS流,在jsp后面添加::$DATA

在这里插入图片描述

在这里插入图片描述

三、Tomcat 弱密码 && 后端 Getshell 漏洞

1. 漏洞描述

Tomcat 支持通过后端部署 war 文件,因此我们可以直接将 webshell 放入 web 目录下。为了访问后端,需要权限。在tomcat8环境下,默认的后台密码为tomcat:tomcat,未修改默认密码就会造成未经授权的后台访问。

2. 影响版本

Tomcat 8.0版本

Tomcat7+的权限如下:

  • manager(后台管理)
  • manager-gui(html页面权限)
  • manager-status(查看状态的权限)
  • manager-script(文本界面权限和状态权限)
  • manager-jmx(jmx 权限和状态权限)

host-manager(虚拟主机管理)

  • admin-gui(html页面权限)
  • admin-script(文本界面权限)

3. 漏洞复现

开启靶机

在这里插入图片描述
弱口令进入(账号:tomcat 密码:tomcat)
在这里插入图片描述
再使用哥斯拉生成一个jsp木马文件在这里插入图片描述
在这里插入图片描述
压缩完成之后进行更改后缀,zip—> war,进行上传

在这里插入图片描述

在这里插入图片描述
点击进入之后会发现报错,先不要慌
在这里插入图片描述
加上文件名即可,发现无报错,但是啥也没有显示,说明上传成功了。

在这里插入图片描述
使用哥斯拉连接
在这里插入图片描述
在这里插入图片描述
连接成功,拿到webshell进入后门。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/599909.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何把Java的定时任务写到数据库里面去配置?

之前是这样写的&#xff0c;每次要改定时器都要修改发版&#xff0c;很麻烦&#xff1a; package cn.net.cdsz.ccb.common.scheduled;import cn.net.cdsz.ccb.business.config.Custom; import cn.net.cdsz.ccb.business.service.CCBBankService; import cn.net.cdsz.ccb.busin…

机器学习项目实践-基础知识部分

环境建立 我们做项目第一步就是单独创建一个python环境&#xff0c;Python新的隔离环境 创建&#xff1a;python -m venv ml 使用&#xff1a;.\Scripts\activate python -m venv ml 是在创建一个名为 ml 的虚拟环境&#xff0c;这样系统会自动创建一个文件夹ml&#xff0c;…

做题速度太慢了,面不上

没办法&#xff0c;之前练了一个月的sql。两个月不写&#xff0c;现在差不多忘干净了。工作空窗期&#xff0c;或者休息期不能太久&#xff0c;不然学再多的内容都可能会忘完的。 sql题&#xff0c;腾讯四道sql题&#xff0c;限时45分钟完成。我只做了一道&#xff0c;还没做完…

重磅!结合AI、高光谱与GEE的双碳目标智能监测与模拟前沿

以全球变暖为主要特征的气候变化已成为全球性环境问题&#xff0c;对全球可持续发展带来严峻挑战。2015年多国在《巴黎协定》上明确提出缔约方应尽快实现碳达峰和碳中和目标。2019年第49届 IPCC全会明确增加了基于卫星遥感的排放清单校验方法。随着碳中和目标以及全球碳盘点的现…

RabbitMQ的介绍和使用

1.同步通讯和异步通讯 举个例子&#xff0c;同步通讯就像是在打电话&#xff0c;因此它时效性较强&#xff0c;可以立即得到结果&#xff0c;但如果你正在和一个MM打电话&#xff0c;其他MM找你的话&#xff0c;你们之间是不能进行消息的传递和响应的 异步通讯就像是微信&#…

Linux系统使用Docker安装青龙面板并实现远程访问管理面板

文章目录 一、前期准备本教程环境为&#xff1a;Centos7&#xff0c;可以跑Docker的系统都可以使用。本教程使用Docker部署青龙&#xff0c;如何安装Docker详见&#xff1a; 二、安装青龙面板三、映射本地部署的青龙面板至公网四、使用固定公网地址访问本地部署的青龙面板 青龙…

【busybox记录】【shell指令】shuf

目录 内容来源&#xff1a; 【GUN】【shuf】指令介绍 【busybox】【shuf】指令介绍 【linux】【shuf】指令介绍 使用示例&#xff1a; 打乱内容 - 默认输出 打乱内容 - 最多输出n行 打乱内容 - 将输出写入文件 打乱内容 - 重复输出 打乱内容 - 打乱本条指令的参数 打…

C语言 自定义类型——联合体

目录: 一、联合体是&#xff1f;声明计算内存大小 二、联合体的特点例如 三、联合体大小的计算规则&#xff1a; 四、应用习1习2 一、联合体是&#xff1f; 联合体和结构体差不多&#xff0c;但是其最大的区别在于联合体所有的成员共用一块内存空间。所以联合体也叫共用体。联…

方法的重写

方法的重写 概念&#xff1a;子类继承父类之后&#xff0c;就拥有了符合权限的父类的属性和方法&#xff0c;但是当父类的方法不符合子类的要求的时候&#xff0c;子类也可以重新的书写自己想要的方法。所以&#xff0c;方法的重写&#xff0c;即子类继承父类的方法后&#xf…

「代码与养生」 :当下程序员的养生指南

前言 众所周知&#xff0c;程序员是死的比较快的一类人。因为天天加班、睡眠不足、久坐不动、长时间面对电子屏幕辐射、长时间高强度用脑等不好避免的问题。因此&#xff0c;要想活的时间长一点&#xff0c;就要多了解一些养生之道 下面&#xff0c;根据个人看的一些博客、书…

深度学习之基于Matlab卷积神经网络验证码识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着互联网的发展&#xff0c;验证码作为一种常用的安全验证手段&#xff0c;被广泛应用于各种网站和…

网络安全--红队资源大合集

目录 相关资源列表 攻防测试手册 内网安全文档 学习靶场 工具包集合 内网安全文档 学习手册相关资源 产品设计文档 版本管理平台漏洞收集 相关工具拓展插件 Kali 环境下拓展插件 Nessus 相关工具拓展插件 Awvs 相关工具拓展插件 红队攻击的生命周期&#xff0c;…

基于FPGA的AD7705芯片驱动设计VHDL代码Quartus仿真

名称&#xff1a; 软件&#xff1a;Quartus基于FPGA的AD7705芯片驱动设计VHDL代码Quartus仿真&#xff08;文末获取&#xff09; 语言&#xff1a;VHDL 代码功能&#xff1a; AD77025芯片控制及串口输出 1、使用FPGA控制AD77025芯片&#xff0c;使其输出AD值 2、将数据计…

基于springboot实现夕阳红公寓管理系统项目【项目源码+论文说明】

基于springboot实现夕阳红公寓管理系统演示 摘要 如今社会上各行各业&#xff0c;都在用属于自己专用的软件来进行工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。互联网的发展&#xff0c;离不开一些新的技术&#xff0c;而新技术的产生往往是…

ASP.NET网上鲜花销售系统的设计

摘 要 本系统实现了一般电子商务所具备的功能&#xff0c;如商品浏览、用户登录注册、网上与购物、结算、后台数据库管理等&#xff0c;利用这些功能可以对鲜花销售信息进行较好的管理。 网上鲜花销售系统的使用者主要是客户和销售管理者&#xff0c;对于客户来说&#xff0…

欧式聚类提取-------PCL

欧式聚类 std::vector<pcl::PointCloud<pcl::PointXYZ>::Ptr> PclTool::euclideanClustering(const pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud) {std::vector<pcl::PointCloud<pcl::PointXYZ>::Ptr> clustered_clouds;// 下采样pcl::Vox…

基于FPGA的DDS波形发生器VHDL代码Quartus仿真

名称&#xff1a;基于FPGA的DDS波形发生器VHDL代码Quartus仿真&#xff08;文末获取&#xff09; 软件&#xff1a;Quartus 语言&#xff1a;VHDL 代码功能&#xff1a; DDS波形发生器VHDL 1、可以输出正弦波、方波、三角波 2、可以控制输出波形的频率 DDS波形发生器原理…

学习和分析各种数据结构所要掌握的一个重要知识——CPU的缓存利用率(命中率)

什么是CPU缓存利用率&#xff08;命中率&#xff09;&#xff0c;我们首先要把内存搞清楚。 硬盘是什么&#xff0c;内存是什么&#xff0c;高速缓存是什么&#xff0c;寄存器又是什么&#xff1f; 我们要储存数据就要运用到上面的东西。首先里面的硬盘是可以无电存储的&#…

无人零售,重塑购物新纪元

在这个快节奏的时代&#xff0c;科技的每一次跃进都在悄无声息地改变着我们的生活方式。而今&#xff0c;无人零售正以雷霆之势&#xff0c;颠覆传统购物模式&#xff0c;为我们带来前所未有的便捷与智能体验。想知道无人零售如何彻底改变我们的购物方式吗&#xff1f;跟随我&a…

Linux实现Flappy bird项目

目录 1、项目介绍 2、功能总结 3、前期准备 3.1 Ncurses库 3.2 信号机制 3.2.1 设置信号响应方式 3.2.2 设置定时器 4、代码实现 4.1 头文件引用及变量、函数定义 4.2 主函数 4.3 curses初始化 4.4 设置定时器 4.5 定时器响应函数 4.6 小鸟控制相关函数 4…