看我如何发现价值3000美元的推特漏洞(附 PoC)
编译:360代码卫士团队
想象一下这个场景:你试图尝试下某些很酷的新的推特 app。像往常那样,它要求你通过 OAuth 登录。你浏览了下权限,它可不想访问你的直接信息(Direct Messages)。果真如此吗?
你授权它访问这些直接信息,而这正是你的私密信息被暴露给全世界的罪魁祸首!开少儿不宜的玩笑了?发暗黑表情包了?完了,全世界都知道了。
到底怎么回事?
多年前,推特的官方 API 密钥遭暴露,也就是说无法使自己的 app 通过推特批准的 app 作者仍然可以访问推特 API。
出于某种原因,推特的 OAuth 屏幕表示这些 app 无法访问直接信息。但事实完全相反!
简言之,用户可被诱骗交出访问直接信息的权限。
限制条件
推特以安全的名义部署了不少限制措施,其中最重要的就是限制回调函数地址。成功登录后,这些 app 仅返回一个预定义 URL,也就是说你无法获取推特官方密钥并将用户发送到你的 app。这是一个合理的安全决策。
但,并非每款 app 都有 URL,或者支持回调函数,或者是一款真正的 app。推特为这类案例构建了第二授权机制。你登录之后,它会提供一个供你输入 app 的 PIN 码。
似乎这些官方 PIN app 并未向用户展示正确的 OAuth 信息。
修复
将问题告知推特后,后者审计了老旧版本的 app 并表示问题已修复。本文作者认为老旧 app 从未设计为能够访问直接信息,但在某个时点在后台更新。
PoC
作者通过 HackerOne 平台提交了这个漏洞,后者于12月6日修复问题,并颁发2940美元的奖励。
推荐阅读
原文链接
https://shkspr.mobi/blog/2018/12/twitter-bug-bounty/
本文由360代码卫士编译,不代表360观点,转载请注明“转自360代码卫士 www.codesafe.cn”。