从二维码应用安全风险到新奇刷洞思路
字数 1348 2025-08-24 07:48:23

二维码应用安全风险与OAuth认证流程缺陷挖掘指南

一、二维码应用概述

二维码已成为日常生活中不可或缺的信息载体,其本质是一种编码方式,与Base64编码类似。关键点在于扫码后获取的信息如何被处理,处理不当则会产生安全风险。

二维码解码后的三种处理方式

  1. 网站跳转:以http://https://开头的网址会用内置浏览器打开
  2. 内容解析处理:符合特定语法的语句会被特别处理
  3. 纯文本传递:其余内容以纯文本形式展示(微信中不允许出现中文)

二、二维码安全风险分析

1. 纯文本传输风险

  • 风险较低,主要可能存在于:
    • 假的纯文本传输:某些条件下HTML标签仍可能被解析

2. 内容解析处理风险

风险完全取决于扫码端的处理逻辑,可能存在的漏洞包括:

  • SQL注入(如果内容存入数据库)
  • SSRF(如果访问内网资源)
  • 任意用户身份伪造(如果根据特定值分配身份)

3. 网站跳转风险

通过二维码跳转网址可能暴露以下安全问题:

  • 接口遍历:如添加好友、分享名片、获取优惠券等接口
  • XSS:动态传参渲染HTML时可能存在的跨站脚本
  • URL重定向:二维码内容可控即相当于存在URL重定向漏洞
  • 敏感信息泄露:链接参数中可能包含密钥、管理员账号等
  • CSRF:可能导致扫码后账号被盗或资金转移
  • OAuth换绑:本质是CSRF,捕获回调链接可导致账号被盗
  • OAuth认证流程缺陷:重点漏洞,下文详述

三、OAuth认证流程缺陷挖掘

漏洞原理

一句话描述:平台在使用OAuth认证时如果没有二级校验就存在OAuth认证流程缺陷。

典型场景

  1. 平台使用微信公众号扫码登录
  2. 用户首次登录需关注公众号
  3. 已关注用户再次扫码时直接登录,无二次确认

攻击方式

  1. 攻击者获取平台登录二维码
  2. 对二维码进行美化包装(如添加诱人文字)
  3. 已关注公众号的受害者扫描二维码后,攻击者立即获得账户权限

漏洞危害

  • 无需抓包,仅需扫码即可判断是否存在缺陷
  • 可导致大规模钓鱼攻击
  • 攻击者可完全控制受害者账户
  • 多家SRC平台定级为中危漏洞

漏洞复现步骤

  1. 访问平台微信登录页面(如https://domain/login?platform=wechat&loginType=sms
  2. 保存生成的微信二维码
  3. 使用二维码美化网站对二维码进行包装
  4. 已关注公众号的用户扫描后,攻击者即可获取其平台权限

修复建议

  1. 在微信公众号端进行二级校验(非网页端,避免模拟绕过)
  2. 申请获取用户额外信息作为二级校验
  3. 使用完整的OAuth认证流程
  4. 在敏感操作处添加二级校验

四、实战经验与SRC提交

提交技巧

  • 多家SRC平台认可此漏洞(AntSRC、网易SRC定级为中危)
  • TSRC前期可能定中危,后期可能降低(不推荐提交)
  • 已有学员利用此漏洞进入某SRC总榜前12名

漏洞报告要点

  1. 明确描述漏洞原理:缺少二级校验的OAuth认证
  2. 强调危害:钓鱼攻击可导致账户完全被控
  3. 提供完整复现步骤
  4. 建议合理的修复方案

五、防御意识提升

  1. 警惕陌生二维码,即使来自官方域名
  2. 开发者应避免仅依赖扫码作为唯一认证方式
  3. 用户应注意扫码后的授权提示
  4. 安全团队应定期检查认证流程

通过深入理解二维码处理机制和OAuth认证流程,安全研究人员可以有效挖掘此类漏洞,同时帮助平台提升安全性。

二维码应用安全风险与OAuth认证流程缺陷挖掘指南 一、二维码应用概述 二维码已成为日常生活中不可或缺的信息载体,其本质是一种编码方式,与Base64编码类似。关键点在于扫码后获取的信息如何被处理,处理不当则会产生安全风险。 二维码解码后的三种处理方式 网站跳转 :以 http:// 或 https:// 开头的网址会用内置浏览器打开 内容解析处理 :符合特定语法的语句会被特别处理 纯文本传递 :其余内容以纯文本形式展示(微信中不允许出现中文) 二、二维码安全风险分析 1. 纯文本传输风险 风险较低,主要可能存在于: 假的纯文本传输:某些条件下HTML标签仍可能被解析 2. 内容解析处理风险 风险完全取决于扫码端的处理逻辑,可能存在的漏洞包括: SQL注入(如果内容存入数据库) SSRF(如果访问内网资源) 任意用户身份伪造(如果根据特定值分配身份) 3. 网站跳转风险 通过二维码跳转网址可能暴露以下安全问题: 接口遍历 :如添加好友、分享名片、获取优惠券等接口 XSS :动态传参渲染HTML时可能存在的跨站脚本 URL重定向 :二维码内容可控即相当于存在URL重定向漏洞 敏感信息泄露 :链接参数中可能包含密钥、管理员账号等 CSRF :可能导致扫码后账号被盗或资金转移 OAuth换绑 :本质是CSRF,捕获回调链接可导致账号被盗 OAuth认证流程缺陷 :重点漏洞,下文详述 三、OAuth认证流程缺陷挖掘 漏洞原理 一句话描述 :平台在使用OAuth认证时如果没有二级校验就存在OAuth认证流程缺陷。 典型场景 平台使用微信公众号扫码登录 用户首次登录需关注公众号 已关注用户再次扫码时直接登录,无二次确认 攻击方式 攻击者获取平台登录二维码 对二维码进行美化包装(如添加诱人文字) 已关注公众号的受害者扫描二维码后,攻击者立即获得账户权限 漏洞危害 无需抓包,仅需扫码即可判断是否存在缺陷 可导致大规模钓鱼攻击 攻击者可完全控制受害者账户 多家SRC平台定级为中危漏洞 漏洞复现步骤 访问平台微信登录页面(如 https://domain/login?platform=wechat&loginType=sms ) 保存生成的微信二维码 使用二维码美化网站对二维码进行包装 已关注公众号的用户扫描后,攻击者即可获取其平台权限 修复建议 在微信公众号端进行二级校验(非网页端,避免模拟绕过) 申请获取用户额外信息作为二级校验 使用完整的OAuth认证流程 在敏感操作处添加二级校验 四、实战经验与SRC提交 提交技巧 多家SRC平台认可此漏洞(AntSRC、网易SRC定级为中危) TSRC前期可能定中危,后期可能降低(不推荐提交) 已有学员利用此漏洞进入某SRC总榜前12名 漏洞报告要点 明确描述漏洞原理:缺少二级校验的OAuth认证 强调危害:钓鱼攻击可导致账户完全被控 提供完整复现步骤 建议合理的修复方案 五、防御意识提升 警惕陌生二维码,即使来自官方域名 开发者应避免仅依赖扫码作为唯一认证方式 用户应注意扫码后的授权提示 安全团队应定期检查认证流程 通过深入理解二维码处理机制和OAuth认证流程,安全研究人员可以有效挖掘此类漏洞,同时帮助平台提升安全性。