脆弱性についてまとめるぼっちアドカレ7日目の記事です。
概要
オープンリダイレクトとは外部のサイトにリダイレクトする機能を持つwebサイトにおいて検証が不十分で任意のサイトにリダイレクトしてしまうことを言います。
このような仕様がなぜ脆弱と言えるのかについてですが例えば統計を取るためにwebアプリケーションから外部のサイトに移動するさいにhttps://example.com/?redirect=<任意のサイトのURL>のようにし任意のサイトへアクセスしていた場合example.comのフィッシングサイトをへのリンクを設定することで正規のサイトのドメインに見せかけることができてしまいます。
悪用方法について
オープンリダイレクトではフィッシング詐欺への利用以外にjavascriptスキームを用いてXSSの利用に使える場合もあります。
またフィッシング詐欺の見分け方としてドメインを確認するという方法がありますがオープンリダイレクトの脆弱性がある場合この方法では見分けることが難しくなってしまいます。
対策について
基本的にはパラメータなどでリダイレクト先を変更する機能自体実装しないというのがいちばんです。
もし実装する場合はホワイトリスト方式でドメインなどを管理するか遷移前にユーザーに確認の画面を表示することが望ましいです。
HackerOneレポート
1. XSS and Open Redirect on MoPub Login
リンク: https://hackerone.com/reports/683298
こちらはTwitterが運用していた広告配信プラットフォームに対して送られたレポートです。
かなり単純でhttps://app.mopub.com/login?next=https://google.comのような感じでログインページのnextクエリーの値にたいしてリダイレクトしていました。
またjavascriptスキームが許可されておりXSSへ繋げることも可能だと指摘しています。これに対して報奨金は$1,540でました。
2. Open redirect at https://inventory.upserve.com/http://google.com/
リンク: https://hackerone.com/reports/469803
UpserveというPOSやレストラン管理システムを提供するサービスに存在したオープンリダイレクトに対するレポートです。個人的に面白いなと思ったのがGETパラメータなどではなくパスパラメータでリダイレクトになっている点です。レポートからはなぜこのような実装になっているかはわかりませんがこのような実装には気をつけたいなと思いました。報奨金は$1,200出ています。
ネタ枠?
リンク: https://hackerone.com/reports/2957962
XVIDEOSに提出されたレポートですが開発者ツールにてhrefを変更することによってオープンリダイレクトになるとしてレポートを提出しています。しかし開発者ツールを利用している時点で万人に対して悪用することはできない上href属性を変更できることは正常な機能の範囲内です。
レポートの提出先からしてジョークかなと思いますが自分ももしかしたらやってしまうかもしれないので気をつけていです。