当前位置: 首页 > 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.hskmm.com/?act=detail&tid=20918

相关文章:

  • content和text方法的区别
  • shell脚本动态域名解析阿里云
  • 聪明的wyk
  • Windows下进程和账户权限
  • Spring Gateway动态路由实现方案 - 详解
  • Nordic 高性能无线SoC nRF54LM20A,专为低功耗蓝牙与Matter设计
  • 调用setState 之后发生了什么?
  • element plus 配置主题色
  • Python教程:解决pip安装包时报错:error: externally-managed-environment This environment is externally managed
  • 哲学家进餐问题
  • 16.1 总体主成分分析
  • 黄金分割比
  • 借助Aspose.Email,使用 Python 读取 Outlook MSG 文件
  • 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1180)
  • 文件同步工具深度测评(2025版):同步盘夺冠
  • Oracle故障处理:数据库启动时遇到ORA-01578错误
  • 【ACM出版|连续三届EI检索】第四届人工智能与智能信息处理国际学术会议(AIIIP 2025)
  • 【2025-09-28】平凡家庭
  • 实用指南:梦回童年,将JSNES 游戏模拟器移植到 HarmonyOS 移植指南
  • 单键触控感应芯片 电容是触控IC VKD233HS -永嘉微VINKA 原厂
  • 微算法科技(NASDAQ: MLGO)研发基于 DPoS 框架的 DL-DPoS(深度链接委托权益证明)机制,增强区块链的共识算法
  • JMM内存模型
  • 读者-写者问题
  • 实现邮件发送
  • AGC073C 赛后补题记录
  • LuatOS赋能Air780EPM:FTP通信开发教程正式上线!
  • DM40万用表为何全网爆火?!它有哪些与众不同?DM40万用表比肩千元级表,让您轻松实现专业级测量自由!
  • 树形dp [POI 2013] LUK-Triumphal arch
  • 【论术】t-design tree组件判断点击了角标还是label
  • leetCode刷题记录1