Sentinel 1.80(CVE-2021-44139)
Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性
Report a Sentinel Security Vulnerability about SSRF · Issue #2451 · alibaba/Sentinel (github.com)
由于该开源项目的sentinel-dashboard module中存在着接口/registry/machine无需授权即可访问,并且客户端接入时提交的注册数据无任何权限校验就存储在内存中,恶意用户无需认证登陆,即可发送恶意的应用注册数据,让sentinel-dashboard定时任务对其数据中ip指定的主机发起GET请求,进行SSRF攻击。
漏洞点在com.alibaba.csp.sentinel.dashboard.metric.MetricFetcher#fetchOnce
通过查看代码可以发现,该方法中会遍历注册AppInfo中每台机器MachineInfo的注册信息,构造对应的URL进行采集客户端限流熔断等数据,但其ip字段无任何校验,通过井号'#'等字符就可以截断后续的URL内容(RFC),进而控制管控平台sentinel-dashboard发起任意GET请求。
分析源码
触发点
这里是漏洞触发点
查看它拼接的参数 ip、port、startTime和endTime,startTime和endTime 都是 long,不存在漏洞点。
重点关注 ip、port。从machine得到的ip和port

machine是遍历machines得到的、machines是 appinfo.getMachines() 获得的
![]()

跟进去看看appinfo.getMachines() 是怎么样的,这里是返回了一个HashSet集合
src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/AppInfo.java

下面有addMachine,跟进去machineinfo 看看里面有什么数据

基本上这三个

如果我们想要触发的话,就得找哪里调用了addMachine
其中有就几个都是写好的127.0.0.1或者固定的。进入到com/alibaba/csp/sentinel/dashboard/discovery/SimpleMachineDiscovery.java

再往上找调用链

这里第一个MachineRegistryController.java 未对对ip和port进行了验证和过滤,只是对是否为空进行了判断
记住这里的路由时 /registry/machine

第二个 AppManagement.java 哦哦发现这里是 AppManagement.java中调用了 appManagement.addMachine
才有了也就是第一个

1.83已经修复版本,但是只是对ip进行了验证和过滤,未授权还是存在的

调用链
回到漏洞点fetchOnce,查找调用的地方
com/alibaba/csp/sentinel/dashboard/metric/MetricFetcher.java

doFetchAppMetric调用了fetchOnce
fetchAllApp调用了doFetchApp

start调用了fetchAllApp,通过fetchScheduleService可以看到它是一个定时任务,每10s执行一次

再去找找哪里调用了start --MetricFetcher()
第一时间没看出什么特别的,然后发现这是个构造函数
这个类的注解是 @Component 会在项目启动时自动注册为bean,调用它的构造函数,也就调用了链子 start()

未授权
这个可以从配置文件中发现

黑盒测试
运行Sentinel/sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/DashboardApplication.java即可启动sentinel-dashboard后台
http://localhost:8080/#/login
默认用户名和密码都是 sentinel(不需要登录)
本地监听12345端口,nc -lvvp 12345
发起对本地localhost端口为12345的SSRF GET攻击,
curl -XGET 'http://127.0.0.1:8080/registry/machine?app=SSRF-TEST&appType=0&version=0&hostname=TEST&ip=localhost:12345%23&port=0


1.8.3已经不行了

但是未授权还是没改的

相关文章:
Sentinel 1.80(CVE-2021-44139)
Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性 Report a Sentinel Security Vulnerability …...
黑马程序员C++提高编程学习笔记
黑马程序员C提高编程 提高阶段主要针对泛型编程和STL技术 文章目录 黑马程序员C提高编程一、模板1.1 函数模板1.1.1 函数模板基础知识 案例一: 数组排序1.2.1 普通函数与函数模板1.2.2 函数模板的局限性 1.2 类模板1.2.1 类模板的基础知识1.2.2 类模板与函数模板1.…...
力扣第1题:两数之和(图解版)
Golang版本 func twoSum(nums []int, target int) []int {m : make(map[int]int)for i : range nums {if _, ok : m[target - nums[i]]; ok {return []int{i, m[target - nums[i]]}} m[nums[i]] i}return nil }...
aws(学习笔记第三课) AWS CloudFormation
aws(学习笔记第三课) 使用AWS CloudFormation 学习内容: AWS CloudFormation的模板解析使用AWS CloudFormation启动ec2 server 1. AWS CloudFormation 的模版解析 CloudFormation模板结构 CloudFormation是AWS的配置管理工具,属于Infrastructure as Co…...
浅学React和JSX
往期推荐 一文搞懂大数据流式计算引擎Flink【万字详解,史上最全】-CSDN博客 数仓架构:离线数仓、实时数仓Lambda和Kappa、湖仓一体数据湖-CSDN博客 一文入门大数据准流式计算引擎Spark【万字详解,全网最新】_大数据 spark-CSDN博客 浅谈维度建…...
React 为什么 “虚拟 DOM 顶部有很多 provider“?
1、介绍React中的Context Provider 在 React 中,虚拟 DOM(Virtual DOM)是 React 用来高效更新 UI 的核心机制,它通过对比前后两次虚拟 DOM 树,确定哪些部分需要更新,以减少直接操作真实 DOM 的开销。而 “…...
忘记了 MySQL 8.0 的 root 密码,应该怎么办?
如果你忘记了 MySQL 8.0 的 root 密码,可以通过以下步骤来重置密码。请注意,这些步骤需要你有对 MySQL 服务器的物理或命令行访问权限。 步骤 1: 停止 MySQL 服务 首先,你需要停止正在运行的 MySQL 服务。你可以使用以下命令来停止 MySQL 服…...
Promise.reject()
Promise.reject() 静态方法返回一个已拒绝(rejected)的 Promise 对象,拒绝原因为给定的参数。 语法 Promise.reject(reason)参数 reason 该 Promise 对象被拒绝的原因。 返回值 返回一个已拒绝(rejected)的 Promi…...
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
云手机与传统手机的区别是什么?
随着科技的快速进步,云手机逐渐成为手机市场的热门选择。与传统的智能手机相比,云手机具有许多独特的功能和优势,尤其在多账号管理和高效操作方面备受关注。那么,云手机究竟与普通手机有哪些区别呢? 1. 更灵活的操作与…...
微知-Bluefield DPU命名规则各字段作用?BF2 BF3全系列命名大全
文章目录 背景字段命名C是bmc的意思NOT的N是是否加密S表示不加密但是secureboot enable倒数第四个都是E倒数第五个是速率 V和H是200GM表示E serials,H表示P serials(区别参考兄弟篇:[more](https://blog.csdn.net/essencelite/article/detail…...
Ubuntu 上使用 Nginx 实现反向代理并启用 HTTPS(详细教程)
拒绝使用宝塔,虽然宝塔很好用方便,但是他非常占用资源,所以我正在尝试转换我使用服务器的方式,通过命令来才做这些,下面是我的详细步骤。 在这篇教程中,我们将详细介绍如何在 Ubuntu 系统上使用 Nginx 搭建…...
2. 继承Mono的单例模式基类
前提 继承MonoBehaviour的脚本不能new继承MonoBehaviour的脚本一定得依附在GameObject上 实现挂载式的单例模式基类 挂载式 继承Mono的单例模式基类 /// <summary> /// 挂载式 继承Mono的单例模式基类 /// </summary> /// <typeparam name"T">&…...
数据治理:制造企业转型的关键要素与战略需求
制造业,作为国民经济的主体,是立国之本、兴国之器、强国之基。从工业文明的曙光初现,到今日全球化的激烈竞争,始终昭示着一个真理:没有强大的制造业,就没有国家和民族的强盛。 为全面推进制造强国建设&…...
FastAPI 基本路由
FastAPI 基本路由 FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,与 Python 3.6+ 类型提示一起使用。在本文中,我们将探讨 FastAPI 的基本路由概念,包括如何定义路由、处理请求和响应,以及一些高级特性。 什么是路由? 在 Web 框架中,路由是指将传入的…...
Python库matplotlib之六
Python库matplotlib之六 动画FuncAnimation构造器成员函数应用例子 动画 Matplotlib基于其绘图功能,还提供了一个使用动画模块,生成动画的接口。动画是一系列帧,其中每个帧对应于图形上的一个图。 Matplotlib使用两个类来实现动画ÿ…...
十一、数据库的设计规范
文章目录 1. 为什么需要数据库设计2. 范式2.1 范式介绍2.2 范式都包括哪些2.3 键和相关属性的概念2.4 第一范式(1st NF)2.5 第二范式(2nd NF)2.6 第三范式(3rd NF)2.7 小结3. 反范式化3.1 概述3.2 应用举例3.3 反范式的新问题3.4 反范式的使用场景3.4.1 增加冗余字段的建议3.…...
这届物理与化学诺奖对S2AIAI4S的启示
物理学与AI看似神秘而又简洁的纠缠 随着今年诺贝尔物理学奖(这篇还没来得及发,化学奖也...)的颁布,不管是国内某圈还是国外某管,无论是学术界又或产业界,充斥着震惊又或是“物理学不存在了”之类的调侃&am…...
压力测试指南-云环境中的压力测试实践
云环境中的压力测试实践 1. 云环境对压力测试的影响 在数字化转型的浪潮中,云环境已成为软件部署与测试的首选。它不仅提供了无限的可扩展性,还极大地改变了我们进行压力测试的方式。传统本地环境中,硬件资源的限制常导致无法模拟真实世界…...
基于多密钥同态加密的安全高效的联邦学习
文章目录 摘要与简介部分1、联邦学习 FL2、同态加密 HE3、文章创新点 一、简介1、基于 HE 的 FLs2、离线问题3、计算开销4、该文章的工作5、文章的贡献点 二、背景和相关研究1、基于多方安全计算 (SMC) 的联邦学习 (FL)2、基于差分隐私 (DP) 的联邦学习 (FL)3、基于可信执行环境…...
高并发场景下的B2B对公支付方案:聚合支付、错付拦截与自动化对账
在B2B交易场景中,大额对公支付一直是一个绕不开的技术难题。与C端支付不同,B2B交易涉及百万级甚至千万级资金流转,传统的线下转账模式不仅流程繁琐,还带来了财务对账耗时、错付退款难、客户付款流失率高等一系列问题。本文将从技术…...
如何利用Postiz实现高效社交媒体管理:AI驱动的智能调度解决方案
如何利用Postiz实现高效社交媒体管理:AI驱动的智能调度解决方案 【免费下载链接】clickvote 📨 The ultimate social media scheduling tool, with a bunch of AI 🤖 项目地址: https://gitcode.com/GitHub_Trending/cl/clickvote Pos…...
2026年AI工具全面爆发:从ChatGPT到DeepSeek,谁在重塑下一代生产力?
还记得2023年ChatGPT刚出来时,大家都在惊叹"AI能聊天了"。但到了2026年,情况完全变了——AI不再是个炫技的玩具,而是实实在在地变成了"生产力工具"。程序员用它写代码,设计师用它做图,运营人用它写…...
Blueman:Linux系统蓝牙管理的高效解决方案
Blueman:Linux系统蓝牙管理的高效解决方案 【免费下载链接】blueman Blueman is a GTK Bluetooth Manager 项目地址: https://gitcode.com/gh_mirrors/bl/blueman 在Linux桌面环境中,蓝牙设备管理长期面临着易用性与功能性难以兼顾的挑战。Bluema…...
TOAST UI Chart折线图实战:实时数据更新与同步工具提示完整指南
TOAST UI Chart折线图实战:实时数据更新与同步工具提示完整指南 【免费下载链接】tui.chart 🍞📊 Beautiful chart for data visualization. 项目地址: https://gitcode.com/gh_mirrors/tu/tui.chart TOAST UI Chart是一款功能强大的数…...
在快马平台快速搭建transformer文本分类原型,验证注意力机制
在深度学习领域,transformer架构已经成为自然语言处理(NLP)任务的核心工具。最近我在尝试搭建一个基于transformer的文本分类模型原型,用来验证注意力机制的效果。整个过程比想象中顺利得多,尤其是在InsCode(快马)平台…...
Linux下载加速:Qwen2.5-32B-Instruct优化方案
Linux下载加速:Qwen2.5-32B-Instruct优化方案 如果你经常在Linux系统上下载软件包、模型权重或者大型数据集,肯定遇到过下载速度慢、连接不稳定、甚至中途断掉需要重来的情况。特别是下载几十GB的大模型文件时,那种看着进度条半天不动的感觉…...
Qt串口通信避坑指南:用QSerialPort封装类解决粘包拆包(附源码+实战演示)
Qt串口通信实战:从粘包拆包到高可靠数据帧处理的完整解决方案 在嵌入式开发和工业控制领域,串口通信作为最基础却又最关键的通信方式,其稳定性直接影响整个系统的可靠性。许多开发者在使用Qt的QSerialPort进行串口通信时,都曾遇到…...
探索光伏 - 电池充电模型:稳定直流输出电压的技术之旅
光伏-电池充电模型,可以很好的稳定直流输出电压 采用最大功率跟踪MPPT算法,通过boost电路输出电压,电池侧采用电压电流PI双闭环控制,通过双向电路给电池充放电 直流侧参考电压为48v在光伏能源领域,确保稳定的直流输出电…...
如何通过Diablo Edit2高效定制暗黑破坏神II角色?全攻略指南
如何通过Diablo Edit2高效定制暗黑破坏神II角色?全攻略指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾因暗黑破坏神II中属性点分配错误而重开新角色?是否为刷…...
