
Abdiwahab Ahmed
4分钟阅读 · 2021年10月28日
这篇文章延续了之前关于OAuth隐式流认证绕过的讨论:https://medium.com/@0x1h3r/authentication-bypass-via-oauth-implicit-flow-3805b409bfa1
今天我们将解决PortSwigger的第二个实验室:
尽管OAuth连接有许多可选参数来自定义其使用,但通常建议除非有强制原因,否则不要使用它们。
示例:状态参数是其中之一。状态参数应该是一个无法完全预测的值,例如与用户会话初始启动OAuth流时相关的哈希值。这些值随后在应用程序客户端和OAuth服务之间来回传递,作为一种CSRF令牌的服务形式。
因此,如果您注意到授权请求没有发送状态参数,从攻击者的角度来看,这一点非常有趣。这可能意味着他们可以在不欺骗用户浏览器完成类似传统CSRF攻击的情况下启动OAuth流程。这可能会根据客户端应用程序如何使用OAuth而产生严重后果。
考虑到允许用户通过OAuth登录或链接其社交媒体资料账户的网站。如果应用程序未能使用状态参数,攻击者就更容易劫持客户端应用程序,使用他们控制的社交媒体账户劫持受害者的账户。
<iframe src="您复制的URL"></iframe>我们就是这样解决这个实验室的。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。