3 Comments

  1. aaa

    /bindingCallback?code=AUTHORIZATION_CODE 这个回调是授权服务器发出的,并且第三方应用会验证是不是授权服务器发出的, 李四怎么伪造这个请求?

    • TWInsights TWInsights

      正常情况下,在授权服务器返回给客户端一个包含AuthorizationCode的响应之后,浏览器接下来会向客户端(也就是例子中的Tonr网站)发起一个GET请求(也就是图中的第4步),去触发客户端申请AccessToken的流程(也就是图中的第5步)。

      然而攻击者李四做的是,将第4步的请求拦截下来,不让其在自己的浏览器里执行,而是精心构造一个网页,并且让受害者张三去访问这个页面。一旦页面在张三的浏览器里打开,在这个网页里的一段JS脚本(或者其他手段)就会继续执行刚才被拦截下来的请求,从而将后续的授权过程进行下去。

  2. bbb

    写得很清晰。赞一个。

    “state参数值和当前用户会话(user session)是相互关联的”
    这一点非常重要。否则李四完全可以在构造攻击页面的时候同样把自己收到的state带上。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据