Implicit Flow では Covert Redirect で Token 漏れるね
この記事は、先ほど書いたこちらの記事の訂正版です。
記事に入る前に、まずは全シンガポールにお詫び申し上げますm m
さて、Covert Redirect についての説明は…超絶取り消し線はいりまくってる前の記事を読んでください、でいいでしょうか?
で、訂正分だけ以下に。
Fragment Handling in Redirect
英語だけど。
で、まぁ要するに、(Modern Browser は) 30x リダイレクト時にリダイレクト元に付いてた URL fragment をリダイレクト先にも引っ付ける、と。
fragment は server-side には送られないけど、クライアントサイドではリダイレクト先に引き継がれる、と。
試しに http://www.idcon.org/#foobar にアクセスすると、http://idcon.org/#foobar にリダイレクトされるかと思います。
www.idcon.org のサーバーには #foobar の部分は送られませんが、http://idcon.org/ に load される client-side の JS からは、#foobar にアクセスできます。
なので、Covert Redirect のケースでも、open redirector をつかって最終的に被害者がリダイレクトしてくる endpoint に攻撃者が JS を仕込んでそれを自分のサーバーにでも送るようにしておけば、access token が漏洩します。
もちろん先ほどの記事にあるように、Authorization Code が漏洩するケースもありますが、open redirector の実装詳細に依存しない分、Implicit Flow において fragment に含まれる access token が漏洩する方が可能性としては高いでしょう。
Read on →