Hello there, ('ω')ノ
リンクパラメータを使用して見つかったオープンリダイレクトの脆弱性を。
脆弱性:
オープンリダイレクト
記事:
今回は、ターゲットのWebサイトがredact.comで。
ログインページに下記が含まれていて。
https://redact.com/login?redirect=https://anysubdomain.redact.com
これは、ユーザがログインするとすぐに下記へ移動して。
https://anysubdomain.redact.com
ここで、「anysubdomain」は、https://redact.comのサブドメインで。
https://mysite.redact.comなどの無効なサブドメインについても言及できて。
アプリケーションは、リダイレクトURLの最後に「redact.com」があることを確認し。
その特定のWebサイトを読み込もうとして。
有効な機能しているサブドメインの場合、それぞれのウェブサイトが読み込まれて。
一方、https://mysite.redact.comなどの無効なサブドメインの場合だと。
アプリケーションはそのWebサイトを読み込もうとすると。
エラーメッセージが表示されて。
ターゲットの無効なサブドメインへのリダイレクト:
オープンリダイレクトのために。
いくつかのクールな回避策を試すことに。
それで、私はhttps://redact.comのさまざまなサブドメインを探し始めて。
しばらくして、https://link.redact.comのような。
アドレスを指しているリンクを見つけて。
幸い、https://redact.comの環境ではリンクが無効だったので。
それに焦点を当てて調査を開始することに。
すぐに、「link」とも呼ばれるパラメータが付加されているのを見つけて。
このパラメータは、自分の指定したウェブサイトにリダイレクトして。
https://link.redact.com?link=https://mysite.comで。
https://mysite.comへのオープンリダイレクトが指定されていて。
しかし、https://link.redact.comは範囲外なので。
スコープ内のアイテム、つまりhttps://redact.com/loginで使用することに。
よって、オープンリダイレクトのペイロードを含む最終的なURLは下記のとおりで。
https://redact.com/login?redirect=https://link.redact.com?link=https://mysite.com
上記のURLは、すでにログインしているユーザを。
https://mysite.comに誘導して。
まだログインしていないユーザに表示される場合は。
最初にユーザにアプリケーションのログイン画面が表示され。
ログインしている場合はhttps://mysite.comに移動して。
影響は明らかで。
つまり、ログインしたユーザは、資格情報などの機密情報を盗むために。
フィッシングWebページに移動する可能性があって。
Best regards, (^^ゞ