漏洞深度分析 | Apache StreamPipes 存在权限绕过漏洞导致垂直越权

news2024/12/23 16:00:28

项目地址

https://github.com/apache/streampipes

项目介绍

Apache StreamPipes 使工业数据分析变得简单!

StreamPipes 是工业物联网的端到端工具箱。它带有针对非技术用户的丰富的图形用户界面,并提供以下功能:

  •  快速连接超过 20 种工业协议,例如 OPC-UA、PLC、MQTT、REST、Pulsar、Kafka 等。
  •  使用超过 100 种算法和数据接收器创建数据协调和分析管道,以将数据转发到第三方系统。
  •  使用数据浏览器通过许多为时间序列数据量身定制的小部件直观地探索历史数据。
  • 实时仪表板,用于显示来自数据源和管道的实时数据,例如,用于车间监控。
  • StreamPipes 具有高度可扩展性,包括一个 Java SDK 来创建新的管道元素和适配器。Python 支持在早期开发阶段可用 - 敬请期待!管道元素是独立的微服务,可以在任何地方运行——集中在您的服务器上或靠近边缘。您想在实时数据上使用自己的机器学习模型吗?只需编写您自己的数据处理器并使其可作为管道元素重复使用。

除此之外,StreamPipes 还包括用于生产部署的功能:

  •  将管道、数据流和仪表板等资源分配给资产以实现更好的组织。
  •  管道和适配器的监控和指标。
  •  内置用户和访问权限管理。
  •  导出和导入资源。

项目版本

0.90.0

漏洞细节

开启REST API,虽然配置了全局 jwt 权限校验,但是并未对用户 token 进行鉴别。因此普通用户亦可使用自己 jwt 发送数据包进行创建用户,且并未对创建用户归属的用户组和权限进行检查,导致低权限用户可以越权创建管理员账户。

具体分析如下:
项目提供了org.apache.streampipes.rest.impl#UserResource 类对用户进行相关操作,且实现了私有函数进行检查。

例如 updateUserAccountDetails 函数就调用了 isAdmin 进行操作前检查。

 

但创建用户函数 user 并未对当前用户及用户传入的权限、用户信息、用户组进行检查。导致可以实现权限绕过实现垂直越权。

 

漏洞利用

创建低权限用户 admin@admin.com ,role 为 Pipline User,无任务界面及功能查看、点击、设置权限。

 

刷新上述空白页面,抓包获取 jwt。

 

以该用户权限访问创建用户链接,无法查看、操作任何内容。

 

以管理员身份抓包获取创建用户创建数据包,删除cookie、替换jwt为受限用户 admin@admin.com。

 

不仅可以创建用户 admin1 ,还可以创建带管理员权限的用户。

 

以越权创建的用户 admin1 登录,可以实现全部管理员操作。

 

修补方式

厂商已发布了漏洞修复程序,请使用此产品的用户尽快更新至安全版本,版本升级链接如下:
https://streampipes.apache.org/download

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

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

相关文章

背包问题: 01背包, (python, golang, c)

01背包 题目 2. 01背包问题 - AcWing题库 有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi,价值是wi。求解: 将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 思路 ht…

反调试专题丨反调试之BeingDebugged

一、x86下IsDebuggerPresent反调试以及反反调试 1、反调试 进程结构体PEB偏移0x2处是一个标志位,当当前程序在调试状态下时,这个标志位就会被改变: nt!_PEB 0x000 InheritedAddressSpace : UChar 0x001 ReadImageFileExecOptions : …

1-vue3初探学习1

vue3插件; vscode插件; 1.volar 【在vscode上安装】 -vue3.x的插件 2.浏览器作为服务的测试版本 Live Server --作为简要服务使用 1-vue3初探学习: 网站: https://cn.vuejs.org/ 2.cdn文件 https://unpkg.com/vue3/dist…

高性能消息中间件 RocketMQ

一、MQ简介 1.1 什么是MQ 消息:是MQ中最小的概念,本质就是一段数据。 队列:在MQ中使用队列的数据结构来存储消息。 MQ是把消息和队列结合起来,称为消息队列(Message Queue),是基础数据结构中…

敏捷需求、迭代、缺陷规划管理工具

敏捷使用产品Backlog来管理需求,产品Backlog是一个需求的清单,按照需求的商业价值排序, 高优先级的需求在Backlog的最上层。产品Backlog是一个渐进明细的清单,它有4个主要特点,称之为DEEP: Detailed 合适的…

Midjourney推出5.2版本,更新zoom out功能

Midjourney是一款专业的图像处理软件,它可以让用户轻松地创造出高质量的图像。它最近宣布推出了5.2版本,这是一个重大的更新,其中最亮眼的功能就是zoom out功能。 zoom out功能可以让用户无限地缩小原始图像,同时保持图像的清晰度…

【http服务】使用命令来查看和停止端口

需求: 在Windows 10上,使用命令来查看和停止端口8000上的进程。 方法: 要查看所有端口以及它们所属的进程,您可以使用以下命令: Get-NetTCPConnection | Select-Object LocalPort, OwningProcess这将显示所有TCP连接的本地端口…

【Spring Cloud Alibaba Seata 处理分布式事务】——每天一点小知识

💧 S p r i n g C l o u d A l i b a b a S e a t a 处理分布式事务 \color{#FF1493}{Spring Cloud Alibaba Seata 处理分布式事务} SpringCloudAlibabaSeata处理分布式事务💧 🌷 仰望天空,妳我亦是行人.✨ &#x1f98…

CentOs8开启网卡配置

1.查看网卡文件 ls /etc/sysconfig/network-scripts/ 网卡文件名为 ifcfg-ens160 2.编辑网卡配置 vi /etc/sysconfig/network-scripts/ifcfn-ens160 按Esc结束编辑,然后冒号 : 输入 wq保存并退出 3.启用网卡 nmcli c up ens160 ##centos8网络管理命令 nmcl…

多元回归预测 | Matlab灰狼算法(GWO)优化极限学习机ELM回归预测,GWO-ELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab灰狼算法(GWO)优化极限学习机ELM回归预测,GWO-ELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环…

AI智慧安监EasyCVR平台长时间运行出现协程高的现象是什么原因?

EasyCVR视频融合平台基于云边端协同架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,可支持多协议接入,包括市场主流标准协议与厂家私有协议及SDK,如:国标GB28181、RTMP、RTSP/Onvif、海…

idea2019.3启动不起来_卡在启动界面

.其实是因为Windows的语音设置导致的. 这里可以,找到控制面板,然后找到,右上角查看方式,选择,类别 2.然后找到时钟和区域 点击时钟和区域 然后 点击区域 然后在区域界面 点击区域选项卡,然后找到 管理,点击管理,然后点击更改系统区域设置 然后看下面的图,这里不要勾选Beta版…

工程安全监测无线振弦采集仪在建筑物的应用分析

工程安全监测无线振弦采集仪在建筑物的应用 工程安全监测无线振弦采集仪是一种在建筑物中应用的重要设备。它通过无线采集建筑物内部的振动信息,对建筑物的安全性进行监测和评估,为建筑物的施工和使用提供了可靠的技术支持。本文将详细介绍工程安全监测…

ModaHub魔搭社区:向量数据库Milvus部署运维问题教程(一)

目录 部署运维问题 如果在安装 Milvus 时,从 Docker Hub 拉取镜像总是失败怎么办? Milvus 只能使用 Docker 部署吗? 为什么 Milvus 返回 config check error 的错误? 为什么在导入数据时 Milvus 显示 no space left on devic…

【Spring Cloud Alibaba Sentinel 实现熔断与限流】 —— 每天一点小知识

💧 S p r i n g C l o u d A l i b a b a S e n t i n e l 实现熔断与限流 \color{#FF1493}{Spring Cloud Alibaba Sentinel 实现熔断与限流} SpringCloudAlibabaSentinel实现熔断与限流💧 🌷 仰望天空,妳我亦是行人.✨…

黑马微信小程序-实现本地服务九宫格并展示商品列表

一、九宫格实现 1.获取数据 1.1准备接口 黑马接口:https://applet-base-api-t.itheima.net/categories 说明:这是获取九宫格的数据接口 1.2使用接口 说明:声明变量获取数据。 getGridList() {wx.request({url: https://applet-base-api-t.…

用雪花 id 和 uuid 还是自增id做 MySQL 主键

MySQL中设计表的时候,MySQL官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处? MySQ…

如何应用Nginx Rewrit

目录 一、Nginx Rewrite 二、Rewrite功能 Rewrite跳转场景 Rewrite跳转实现 Nginx 跳转 pcre支持 重写模块 Rewrite实际场景 Rewrite命令/语法格式 flag标记说明 location分类 location优先级 rewrite和location相比 三、跳转案例 实现域名跳转 第一步 修改指…

Gof23设计模式之原型模式

1.概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 2.结构 原型模式包含一下角色: 抽象原型类:规定了具体原型对象必须实现的clone()方法具体原型类:实现了抽象圆形类的clone()方法…

Opencv 源码编译以及调用相关

查看Ubuntu上面已经安装的opencv的版本 pkg-config --modversion opencv源码编译 源码下载, 注意其中的batch, 选择一致。 git clone https://github.com/opencv/opencv.git # 下面的仓库为第三方库,可以根据需要选择 git clone https://github.com/o…