SRC案例-OAuth缺陷导致任意账号接管

本文最后更新于 2024年7月24日 下午

原文地址: src漏洞挖掘 OAuth缺陷接管账号

漏洞产生点

  • 个人账号界面微信号绑定功能处

怎么发现的

  • 对OAuth的特征有形成了一定的心理表征,能敏锐的识别出来使用了OAuth,思考可能会存在认证缺陷问题
  • 对二维码验证过程与数据包之间的联系有一定的认知
  • 多尝试,不要嫌麻烦,大胆尝试,细致耐心

漏洞类型

  • 属于OAuth认证框架的缺陷,也可以说是CSRF,访问控制缺失

漏洞细节

  1. 使用A账号登录,来到微信绑定的功能点
  1. 使用手机扫码,并抓这个扫码的包
  1. 此时,关键来了,扫码之后,应该是使用GET请求,直接在URL中携带了扫描二维码得到的微信身份认证信息!而我们知道,请求时,浏览器有自动携带Cookie的特性。所有流程应该是:
    1. A账号扫码截获扫码的数据包,不要使用这个数据包,丢弃(因为code只能使用一次,如果A账号使用了,受害者还怎么受害?)
    2. 对于此时的数据包,获取这个数据包的URL,其中已经携带了A账号扫码得到的微信账号身份认证信息,此时的数据包cookie携带的也是A账号的cookie,有没有想到什么?对啦就是CSRF! 这也是漏洞发现的核心细节:如果我们让已经登录的X用户去访问我们构造的这个URL(携带了A账号扫描二维码得到的微信身份认证信息),并且请求时,浏览器会自动携带X用户的cookie,于是,只要X用户访问该URI,就完成了把X用户的账号的微信绑定成了A用户的微信,就间接取得了对X账号的控制权,算实现了账号接管

遇到的阻碍