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

这篇具有很好参考价值的文章主要介绍了漏洞深度分析 | Apache StreamPipes 存在权限绕过漏洞导致垂直越权。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目地址

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 类对用户进行相关操作,且实现了私有函数进行检查。

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

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

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

 

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

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

 

漏洞利用

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

修补方式

厂商已发布了漏洞修复程序,请使用此产品的用户尽快更新至安全版本,版本升级链接如下:
https://streampipes.apache.org/download文章来源地址https://www.toymoban.com/news/detail-507261.html

到了这里,关于漏洞深度分析 | Apache StreamPipes 存在权限绕过漏洞导致垂直越权的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习架构的对比分析

    深度学习的概念源于人工神经网络的研究,含有多个隐藏层的多层感知器是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示,以表征数据的类别或特征。它能够发现数据的分布式特征表示。深度学习是机器学习的一种,而机器学习是实现人工智能的必

    2024年02月04日
    浏览(53)
  • 深度分析:如何轻松掌握文件大小管理

    大家好,今天我要与大家分享一个实用至极的脚本。简单易用,但效果却让人惊艳。它可以在几秒钟内完成文件大小的统计,并生成一份统计信息。 功能概览 完整性分析: 一次性告诉你不同大小区间的文件分布,让你一目了然。 速度超快: 忘掉繁琐的手动查找和统计,这

    2024年02月10日
    浏览(35)
  • 使用深度学习模型进行情感分析

    在本篇文章中,我们将介绍如何使用深度学习模型进行情感分析。具体来说,我们将使用卷积神经网络(Convolutional Neural Network,CNN)对 IMDB 数据集进行情感分类。 1. 数据集介绍 IMDB 数据集是一个常用的自然语言处理数据集,包含了 50000 条电影评论。其中,25000 条评论用于训

    2023年04月15日
    浏览(47)
  • 深度学习之CSPNet网络分析

    CSPNet:Cross Stage Partial Network,跨阶段局部网络 作用:从网络设计角度来缓解以前推理时需要很大计算量的问题 推理计算过高的原因:由于网络优化中的梯度信息重复导致的! cspnet解决方式:通过将梯度的变化从头到尾地集成到特征图中,在减少了计算量的同时可以保证准确

    2023年04月13日
    浏览(39)
  • 安索夫矩阵:案例深度分析与应用价值

    安索夫矩阵,也称为产品/市场方格,是20世纪50年代由伊戈尔·安索夫提出的战略管理工具。它为企业提供了一个直观、实用的框架,帮助企业确定其产品或服务在市场中的位置,以及潜在的增长机会。通过对安索夫矩阵的深度分析,并结合实际案例,我们可以更好地理解这一

    2024年04月14日
    浏览(44)
  • Cuba勒索软件深度分析及防护建议

    从2022年5月上旬开始,Unit 42观察到攻击者使用新工具和技术部署Cuba勒索软件。使用Unit42的命名模式,他们将Cuba勒索软件命名为Tropical Scorpius。 Cuba勒索软件家族于2019年12月首次浮出水面。此后,该勒索软件家族背后的攻击者改变了策略和工具,成为2022年成为更普遍的威胁。该

    2024年02月07日
    浏览(52)
  • 深度解读《深度探索C++对象模型》之数据成员的存取效率分析(一)

    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表。 在《深度解读《深度探索C++对象模型》之C++对象的内存布局》这篇文章中已经详细分析过C++的对象在经过封装后,在各

    2024年04月22日
    浏览(44)
  • 深度解读《深度探索C++对象模型》之数据成员的存取效率分析(二)

    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表。 接下来的几篇将会讲解非静态数据成员的存取分析,讲解静态数据成员的情况请见上一篇:《深度解读《深度探索C+

    2024年04月22日
    浏览(40)
  • 深度解读《深度探索C++对象模型》之数据成员的存取效率分析(三)

    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表。 前面两篇请通过这里查看: 深度解读《深度探索C++对象模型》之数据成员的存取效率分析(一) 深度解读《深度探索

    2024年04月22日
    浏览(37)
  • 深度解读《深度探索C++对象模型》之C++虚函数实现分析(一)

    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表。 假如有这样的一段代码,代码中定义了一个Object类,类中有一个成员函数print,通过以下的两种调用方式调用: 请问这

    2024年04月23日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包