Tomcat一些漏洞的汇总

2023-10-27

前言:Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用 服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

目录

一、Tomcat 任意文件写入(CVE-2017-12615)

1.漏洞介绍

1.1影响范围:

1.2漏洞原理:

2.漏洞复现

3.修复建议

二、Tomcat 远程代码执行(CVE-2019-0232)

1.漏洞介绍

1.1影响版本

1.2漏洞利用条件

1.3漏洞原理

2.漏洞复现

3.修复建议

三、Tomcat session反序列化(CVE-2020-9484)

 1.漏洞介绍

1.1影响版本:

1.2漏洞利用条件:

1.3漏洞原理:

2.漏洞复现

3.修复建议

四、Tomcat 弱口令 && 后台getshell

1.漏洞介绍

1.1影响版本

1.2漏洞条件

1.3漏洞原理

2.漏洞复现

3.修复建议

一、Tomcat 任意文件写入(CVE-2017-12615)

1.漏洞介绍

1.1影响范围:

Apache Tomcat 7.0.0 - 7.0.81

1.2漏洞原理:

Tomcat配置文件/conf/web.xml 配置了可写(readonly=false),导致可以使用PUT方法上传任意文件,攻击者将精心构造的payload向服务器上传包含任意代码的 JSP 文件。之后,JSP 文件中的代码将能被服务器执行

2.漏洞复现

使用vulfocus提供的靶场

抓包修改请求包方法为PUT,通过PUT方法上传文件,注意PUT与文件名之间要有空格,文件内容通过POST提交

我们直接上传jsp文件会报404错误,估计是服务器有校验,因此我们需要绕过

方法一:使用斜杠/,斜杠在文件名中是非法的,所以会被去除(Linux和Windows中都适用)

PUT /shell.jsp/ HTTP/1.1

加'/'是为了绕过jsp文件的限制,斜杠在文件名中是非法的,所以会被去除(Linux和Windows都适用)

方法二:使用空格%20 (在Windows中适用)

在Windows下不允许文件以空格结尾,因此上传到windows会被自动去掉末尾空格

PUT /shell.jsp%20 HTTP/1.1

方法三:使用NTFS流(在Windows中适用的)

PUT /x.jsp::$DATA HTTP/1.1

 访问上传的文件获取flag

3.修复建议

 1、配置readonly和VirtualDirContext值为True或注释参数,禁止使用PUT方法并重启tomcat
注意:如果禁用PUT方法,对于依赖PUT方法的应用,可能导致业务失效。
2、根据官方补丁升级最新版本

二、Tomcat 远程代码执行(CVE-2019-0232)

1.漏洞介绍

1.1影响版本

Apache Tomcat 9.0.0.M1 to 9.0.17

Apache Tomcat 8.5.0 to 8.5.39

Apache Tomcat 7.0.0 to 7.0.93

1.2漏洞利用条件

1.系统为Windows
2. 启用了CGI Servlet(默认为关闭)
3. 启用了enableCmdLineArguments(Tomcat 9.0.*及官方未来发布版本默认为关闭)

1.3漏洞原理

由于使用enableCmdLineArguments在Windows上运行时,远程执行代码漏洞(CVE-2019-0232)驻留在公共网关接口(CGI)Servlet中,java运行时环境(JRE)将命令行参数传递给Windows的方式存在缺陷导致

2.漏洞复现

参考:

https://www.cnblogs.com/liliyuanshangcao/p/10731966.html

3.修复建议

1.禁用enableCmdLineArguments参数。
2.在conf/web.xml中覆写采用更严格的参数合法性检验规则。
3.升级tomcat到9.0.17以上版本。

三、Tomcat session反序列化(CVE-2020-9484)

 1.漏洞介绍

1.1影响版本:

10.0.0-M1至10.0.0-M4

9.0.0.0.M1至9.0.34

8.5.0至8.5.54

7.0.0至7.0.103

1.2漏洞利用条件:

1.攻击者能够控制服务器上文件的内容和文件名称; 
2.服务器PersistenceManager配置中使用了FileStore; 
3.PersistenceManager中的sessionAttributeValueClassNameFilter被配置为“null”,或者过滤器不够严格,导致允许攻击者提供反序列化数据的对象; 
4.攻击者知道使用的FileStore存储位置到攻击者可控文件的相对路径

1.3漏洞原理:

当使用tomcat时,如果使用了tomcat提供的session持久化功能,就会在一次会话中尝试读取session文件中的内容,并进行反序列化。

2.漏洞复现

参考:

Tomcat Session(CVE-2020-9484)反序列化漏洞复现 - FreeBuf网络安全行业门户

3.修复建议

1.检查是否使用tomcat的session持久化功能,如果有,建议关闭
2.检查项目中文件上传功能是否存在任意上传,这里任意上传指的是可以上传非jsp文件且可以控制上传文件名后缀为session
3.升级tomcat至最新版本

四、Tomcat 弱口令 && 后台getshell

1.漏洞介绍

1.1影响版本

所有版本

1.2漏洞条件

Tomcat7+权限分为:

  • manager(后台管理)
    • manager-gui 拥有html页面权限
    • manager-status 拥有查看status的权限
    • manager-script 拥有text接口的权限,和status权限
    • manager-jmx 拥有jmx权限,和status权限
  • host-manager(虚拟主机管理)
    • admin-gui 拥有html页面权限
    • admin-script 拥有text接口权限

这些权限的究竟有什么作用,详情阅读 Apache Tomcat 8 (8.5.77) - Manager App How-To

用户tomcat拥有上述所有权限,密码是tomcat;正常安装的情况下,tomcat中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。

1.3漏洞原理

通过弱口令进入后台后,在后台部署war文件,可以直接将webshell部署到web目录下

2.漏洞复现

参考链接:

16.Tomcat弱口令 && 后台getshell漏洞 - bmjoker - 博客园

3.修复建议

1、在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。

2、增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置)。在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制。

3、针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat一些漏洞的汇总 的相关文章

随机推荐

  • @DynamicUpdate 注解 动态更新 和 lombok 插件 @Data 注解使用 ; @Transient 与Dto引入

    比如在实体类中 private Date updateTime 这个属性 在数据库中 我们创建update Time的时候我们 update Time timestamp not null default current timestamp
  • [C++]何为溢出?如何避免?

    总时忘记 以Leetcode69为例 来记录一下吧 给你一个非负整数 x 计算并返回 x 的 算术平方根 由于返回类型是整数 结果只保留 整数部分 小数部分将被 舍去 注意 不允许使用任何内置指数函数和算符 例如 pow x 0 5 或者
  • 惊!一百多万人下载这些vscode摸鱼插件

    分享资料 一起学习 我是小白 微信 tlxx233 备注 888建了个微信程序员学习群 互相解答问题 有需要的同学可以加我微信进群 作为一个程序员 我们的日常工作离不开代码编辑器 有时候编写代码会让人感到无聊和单调 但是好的插件可以让编码变
  • 这个牛逼的Python模块,能让你轻松模拟并记录键盘操作(附零基础学习资料)

    前言 模拟键盘操作执行自动化任务 我们常用的有 pyautowin 等自动化操作模块 但是这些模块有一个很大的缺点 编译的时候非常依赖 windows 的C语言底层模块 文末送福利 今天介绍的这个模块叫做 keyboard 它有一个最大的优
  • SaltStack部署

    目录 一 SaltStack简介 1 基本简介 2 通信方式 3 功能简介 二 资源获取 1 官网地址 2 阿里云地址 三 部署 1 配置环境说明 2 资源配置 一 SaltStack简介 1 基本简介 SaltStack是一种新型的基础设
  • IDEA 如何根据代码自动生成类图

    文件夹右键 gt Diagrams gt show Diagram gt Java classes diagram 选择类图的成员 成员变量 构造器 方法 配置文件 内部类 生成的类图
  • 读书感悟之,从术到道

    最近在看了一些书 因为书的内容和方向有着比较大的出入 自然就有了一些不同层面的感悟 在笔者看来 书籍大抵成三类 层面 1 术的层面 1 科普和不系统的知识类 如 电气知识1000问 各种论坛 帖子 公众号的非连载的知识类 人文社科的更多 这
  • visio绘制自制图案并填充

    1 首先打开 文件 gt gt 选项 gt gt 高级 勾选以开发人员模式运行 2 选择开发工具 选择线条 3 绘画出椭圆与线条 4 选择操作 使用修剪功能或得相交得两个部分 5 按照上述步骤绘制出想要得图案 全选后选择操作中的连接 6 对
  • 尝试在条件“($(MsBuildMajorVersion) < 16)”中对计算结果为“”而不是数字的“$(MsBuildMajorVersion)”进行数值比较

    https learn microsoft com en us nuget consume packages migrate packages config to package reference 我的处理方法简单粗爆 直接将packag
  • mysql映射表的作用_php – MySQL:了解映射表

    当使用多对多关系时 处理此事的唯一现实的方法是使用映射表 说我们有一所有老师和学生的学校 一个学生可以有多个教师 反之亦然 所以我们做3个表 student id unsigned integer auto increment primar
  • 【RabbitMq】05 RabbitMq 消息确认机制-可靠抵达

    一 保证消息不丢失 1 使用事务消息 性能下降250倍 2 消息确认机制 1 publisher confirmCallback 确认模式 2 publisher returnCallback 未投递到queue退回模式 3 consume
  • BLE连接建立过程详解

    同一款手机 为什么跟某些设备可以连接成功 而跟另外一些设备又连接不成功 同一个设备 为什么跟某些手机可以建立连接 而跟另外一些手机又无法建立连接 同一个手机 同一个设备 为什么他们两者有时候连起来很快 有时候连起来又很慢 Master是什么
  • 【解决问题】mysql 数据库字符串分割之后多行输出方法

    背景 项目需要从一张表查询出来数据插入到另一张表 其中有一个字段是用逗号分隔的字符串 需要多行输入到另一张表 那么这个如何实现呢 方案 下面先粘贴下sql语句 select SUBSTRING INDEX SUBSTRING INDEX v
  • Windows Server 2008 R2 实现多用户同时登陆

    Server 版系统一直都支持多用户同时登陆 这是一个很好用的功能 我们来看看怎么实现的 Start gt Administrator tools gt Remote Desktop Services gt Remote Desktop S
  • Android事件分发详解

    一 事件分发基础知识讲解 1 事件分发的 事件 是指什么 即 用户触摸屏幕时产生的点击事件 Touch事件 这个点击事件 Touch事件 会被封装成MotionEvent对象 从手指接触屏幕至手指离开屏幕这个过程产生的一系列事件 一般情况下
  • 包邮送50本清华出版社高质量Python、爬虫、机器学习书籍!

    来给大家送一波福利 这次联系了 9个好友一起给各位送书 每个号送 5 本 一共 50本 还包邮哦 具体书籍种类 介绍信息文中有详细介绍 这10个公众号 也是在Python AI 算法 数据科学领域非常优秀的公众号 也能帮助大家学到更多有用知
  • 使用 OpenVINO™及实际应用场景数据集加强已训练好的AI模型 - TensorFlow

    作者 Stewart Christie Ragesh Hajela及李翊玮 机器学习要求我们拥有现有数据 并非应用在运行时将使用的数据 而是要从中学习的数据库 实际上 你需要大量的真实数据 越多越好 您提供的示例越多 计算机应能够学习得越好
  • Linux--Qt Creator 创建桌面快捷方式(Ubuntu 亲测可用)

    在 usr share applications 目录下创建qtcreator desktop vim usr share applications qtcreator desktop 将如下内容复制到qtcreator desktop D
  • linux里安装Nginx

    一 下载 参考 https blog csdn net adaizzz article details 126669430 官网 http nginx org 里面展示了所有版本 根据需要下载你所需的版本即可 将下载好的安装包上传至Linu
  • Tomcat一些漏洞的汇总

    前言 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器 属于轻量级应用 服务器 在中小型系统和并发访问用户不是很多的场合下被普遍使用 是开发和调试JSP 程序的首选 目录 一 Tomcat 任意文件写入 CVE 2017 12