当前位置: 首页 > news >正文

微软SSO集成中的顺序用户ID身份验证绕过漏洞剖析

身份验证绕过:微软SSO集成中的顺序用户ID漏洞 | 严重漏洞

如果你是渗透测试人员或漏洞赏金猎人,千万不要在测试中跳过SSO。这是那些人人都认为安全的功能之一,但我不断在其中发现严重缺陷。

我决定撰写本文,是因为我已经不止一次遇到同类漏洞,而且令人惊讶的是它依然存在。人们通常认为,一旦应用程序采用单点登录(特别是像微软这样的方案),身份验证就会自动变得安全。但这种假设是危险的。

在最近一次测试中,我发现登录流程表面看起来完美无缺——微软SSO、Authenticator提示,一切就位。但当我深入后端时,整个安全模型就崩溃了。服务器依赖来自客户端的可预测user_id来决定哪个账户处于活跃状态。更改该值,你突然就能以他人身份登录。

漏洞原理

该应用使用微软SSO(Azure AD)进行登录。SSO完成后,应用会颁发与用户邮箱绑定的令牌。

存在一个接受userId的API端点,服务器使用它来设置活跃账户。服务器既不验证userId是否与令牌中的已认证身份对应,也不验证MFA声明。

userId值为顺序且可枚举 → 攻击者可猜测其他用户的id并切换到其账户。

风险分析

  • 如果后端从不检查MFA声明(amr、auth_time),UI中的MFA就毫无意义。Authenticator提示的存在并不保证强制执行
  • 信任客户端提供的标识符是根本性错误。任何来自客户端的内容都必须根据经过验证的服务端声明进行验证
  • 可预测/顺序ID极易枚举,使授权检查变成可选的表演
  • 账户接管是即时发生的。一旦攻击者能在没有服务端检查的情况下更改活跃用户上下文,整个账户就会被入侵

根本原因

  • 后端信任客户端提供的状态:开发者使用来自客户端的userId作为会话/账户选择的真相来源,而不是将会话与已验证的令牌声明(sub)绑定
  • 令牌绑定逻辑薄弱:应用在SSO后颁发令牌,但从未强制执行该令牌与活跃会话之间的严格绑定
  • 加密令牌或令牌验证缺失:即使令牌被加密(JWE)或由可信IdP返回,团队有时也会跳过服务端的适当解密/验证
  • 身份验证与授权混淆:流程将"我有令牌"与"我被允许以该用户身份操作"分离
  • 遗留或匆忙的集成:快速SSO集成、演示代码或遗留路由经常复制粘贴基于id的简单逻辑并暴露给客户端
  • 可预测标识符+缺乏速率限制:使用顺序整数作为公共用户ID使枚举成本低廉

总结

SSO是一个集成方案,而非安全保证。如果你的后端哪怕稍微信任客户端输入,IdP保护就会被绕过。务必验证令牌、在服务器端强制执行MFA,并停止暴露顺序ID。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

http://www.rkmt.cn/news/13977.html

相关文章:

  • shell脚本动态域名解析阿里云
  • 对称加密和非对称加密原理对比
  • 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1180)
  • 20250929周一日记
  • 实用指南:梦回童年,将JSNES 游戏模拟器移植到 HarmonyOS 移植指南
  • 单键触控感应芯片 电容是触控IC VKD233HS -永嘉微VINKA 原厂
  • 读者-写者问题
  • 实现邮件发送
  • LuatOS赋能Air780EPM:FTP通信开发教程正式上线!
  • DM40万用表为何全网爆火?!它有哪些与众不同?DM40万用表比肩千元级表,让您轻松实现专业级测量自由!
  • 【论术】t-design tree组件判断点击了角标还是label
  • Redis基础篇——集成客户端 - 实践
  • k8s下部署kuboard
  • [Reprint] - Install Arm GNU Toolchain on Ubuntu 22.04
  • 1_二分查找
  • redis使用lua脚本迁移数据到集群版redis失败怎么解决
  • 详细介绍:医疗编程AI技能树与培训技能树报告(国内外一流大学医疗AI相关专业分析2025版,下)
  • Win 10 LSTC 使用 Podman - tfel
  • coremail日常操作
  • 实用指南:基于MATLAB的8QAM调制解调仿真与BER性能分析
  • mp4/图片转gif
  • 详细介绍:09.【Linux系统编程】“文件“读写操作,Linux下一切皆文件!
  • 数据类型-元组
  • Windows 驱动开发基础
  • 阿里云抵御CC攻击利器边缘安全加速ESA
  • Manim实现闪电特效
  • 华为发布开源超节点架构,以开放战略叩响AI算力生态变局 - 指南
  • 题解:CF1548E Gregor and the Two Painters
  • Gitee DevOps:重塑中国软件开发效率的新范式
  • C语言数组与函数实践应用项目--扫雷游戏 - 指南