尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

OAuth/OpenID Connect安全测试全指南

OAuth/OpenID Connect安全测试全指南
📅 发布时间:2026/6/19 7:25:57
本文详细介绍了OAuth和OpenID Connect在现代Web应用中的安全测试案例,涵盖端点侦察、开放重定向、代码重放攻击、CSRF防护、令牌生命周期管理等关键测试场景和防护建议。

Web应用渗透测试:OAuth/OpenID Connect测试案例

OAuth和/或OpenID Connect在现代Web或移动应用程序中广泛使用。如果应用程序使用OAuth和/或OpenID Connect进行身份验证/授权,以下是在评估期间可以执行的测试案例:

侦察阶段

  • 检查应用程序使用的OAuth实现类型,例如隐式授权或令牌授权(response_type=token)、授权码授权(response_type=code)等
  • 检查以下标准端点,这将让我们了解支持的预期范围等信息:
    • /.well-known/oauth-authorization-server/
    • /.well-known/openid-configuration

开放重定向测试

  • 检查redirect_uri(OAuth流程中的必需参数)是否存在开放重定向可能,或参考"测试重定向URI验证不足"
  • 参考此链接中发现的常见绕过方法

以下是来自OWASP WSTG的示例:

# client.evil.com是攻击者控制的回调域名,目标是欺骗OAuth流程将授权码发送到攻击者域名
https://as.example.com/authorize?client_id=example-client&redirect_uri=http%3A%2F%2Fclient.evil.com%2F&state=example&response_mode=fragment&response_type=code&scope=openid&nonce=example

授权码测试

(适用于公共客户端或单页应用/移动应用程序)

  • 在授权码授权中,多次重放代码(代码重放攻击)
  • 注意此代码的过期时间,理想情况下应该短暂有效

其他涉及授权码的测试案例:

  • 为另一个client_id发送有效代码
    • 如果应用程序所有者提供了另一个client_id,或者测试人员能够在AS或OAuth提供商中注册另一个client_id(例如通过动态客户端注册)
  • 为另一个资源所有者发送有效代码
    • 如果您有另一个测试用户或应用程序允许自注册
    • 启动用户1的OAuth流程,在AS提供授权码的部分,在Burp/Zap中丢弃响应(因此代码不会被使用)
    • 使用用户2执行另一个OAuth流程,然后将用户2获得的代码与用户1的代码交换
  • 为另一个redirect_uri发送有效代码

以下示例来自OWASP WSTG:

POST /oauth/token HTTP/1.1
Host: as.example.com
[...]
{"client_id":"example-client","code":"INJECT_CODE_HERE","grant_type":"authorization_code","redirect_uri":"https://client.example.com"
}
  • 如果响应返回访问令牌、刷新令牌等,将此报告为发现

其他关键测试

  • 执行PKCE降级攻击测试
  • 检查可能的SSRF
  • 检查State参数是否存在,如果不存在,可能存在CSRF风险
  • 如果State参数存在,检查是否经过验证或真正随机
  • OAuth流程中的CSRF测试案例通常适用于"同意页面"

以下示例来自OWASP WSTG:

POST /u/consent?state=Tampered_State HTTP/1.1
Host: as.example.com
[...]
state=MODIFY_OR_OMIT_THIS&audience=https%3A%2F%2Fas.example.com%2Fuserinfo&scope%5B%5D=profile&scope%5B%5D=email&action=accept
  • 测试同意页面中的点击劫持(CSP与frame-ancestors指令和/或X-Frame-Option在此处用于缓解)
  • 测试JWT的令牌生命周期(访问令牌、刷新令牌)
  • 检查是否可以升级Scope,例如如果初始Scope是scope=openid%20email,是否可以升级为scope=openid%20email%20profile
  • 在OpenID Connect中,检查配置是否支持动态客户端注册
  • 如果使用隐式流程,检查response_mode是否未设置为form_post
  • 检查引用头中泄露的凭据
  • 检查缺少的安全头(CSP(具有适当指令)、HSTS、Referrer策略、权限策略、X-Frame-Options、X-Content-Type-Options等)
  • 检查涉及OAuth流程的端点是否容易受到CORS错误配置的影响
  • 检查涉及OAuth流程的端点是否使用未加密的网络连接
  • 对客户端执行客户端密钥暴露测试
  • 执行不当令牌存储测试
  • 执行访问令牌注入测试,适用于客户端使用直接向客户端颁发访问令牌的响应类型时

缓解/修复/建议

  • 始终验证所有参数是否存在,并验证其值
  • 使用PKCE扩展正确保护授权码和令牌交换
  • 不允许安全功能(如PKCE扩展)的回退
  • 限制凭据的生命周期
  • 尽可能只使用凭据一次
  • 配置可用的安全缓解措施
  • 仅当客户端能够安全存储时才使用客户端密钥
  • 遵循最佳实践安全存储令牌
  • 避免使用已弃用的OAuth授权类型

参考资料

  • https://portswigger.net/web-security/oauth
  • https://portswigger.net/web-security/oauth/openid
  • https://www.cyberark.com/resources/threat-research-blog/how-secure-is-your-oauth-insights-from-100-websites
  • OWASP测试指南系列

免责声明

本博客提供的信息仅供一般参考。虽然我始终力求准确,但某些细节可能不准确,提供的列表可能不完整。我强烈建议在做出任何决定或采取行动之前,根据行业标准文档和官方来源验证任何关键信息。此处表达的所有观点均为我个人观点,不代表我雇主的观点或立场。"此列表是一个正在进行的工作 🚧"
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

相关新闻

  • 采用虚幻引擎(UE5)打造黑夜场景氛围
  • 2025 年电磁流量计厂家推荐:湖北南控仪表科技有限公司专业设备供应与行业适配解决方案
  • 自动化测试框架选型指南:数据驱动、关键字驱动还是混合模式?

最新新闻

  • 2026 年 6 月最新无锡同城购宠评分榜实测|7 家正规猫舍犬舍横向测评,附近实体门店避坑全攻略 - 吉林同城获客
  • 广州租办公室哪里好?万博德舜大厦A塔居首,2026年6月四大商务区深度横评 - 速递信息
  • 嵌入式GUI开发:emWin LISTVIEW控件从入门到精通
  • 2026深圳龙岗宝安龙华黄金回收实测 多轮对比实测优选 - 逸程
  • 2026上海钻石回收7家机构对比测评 本土标杆机构推荐 - 薛定谔的梨花猫
  • Flutter PullToRefresh与NestedScrollView集成深度解析:解决复杂滚动场景的终极指南

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号