Shikata Ga Nai

Private? There is no such things.

#BugBounty @ Linkedln-How I was able to bypass Open Redirection Protectionを訳してみた

Hello there, ('ω')ノ

 

オープン リダイレクト保護をバイパスできた方法を。

 

脆弱性:

 オープンリダイレクト

 

記事:

 https://medium.com/bugbountywriteup/bugbounty-linkedln-how-i-was-able-to-bypass-open-redirection-protection-2e143eb36941

 

ここでは、数か月前に Linkedln で見つけた素晴らしい脆弱性について。

 

オープンなリダイレクトの脆弱性は、アプリケーションが安全でない方法で

ユーザ制御可能なデータをリダイレクトのターゲットに組み込むときに発生し。

攻撃者は、アプリケーション内で任意の外部ドメインへのリダイレクトを

引き起こす URL を構築する可能性があり。

脆弱な Web サイトのリンクの例は次のようになり。

 

 http://xyz.com/login.html?vulparam =https://xyz.com/next

 

この例では、「vulparam」パラメータは、ログイン成功時のユーザの送信先を示し。

Web サイトが「vulparam」パラメータ値を検証して、対象の Web ページが

正当で意図されたものであることを確認しない場合、

攻撃者はそのパラメータを操作して、攻撃者が作成した偽のページに

被害者を送信する可能性があり。

 

 https://xyzcom/login.html?vulparam=http://evil.com

 

しかし、Linkedln オープン リダイレクトをバイパスするのはそれほど簡単ではなく。

脆弱な URL は 下記で。

 

https://www.linkedin.com/lite/external-redirect?url=http://evilzone.org&urlHash=YKI5

 

Linkedln には、オープン リダイレクトに対する優れた保護機能が備わっていて。

これは、次のような一般的な手法を使用してバイパスできなかったためで。

 

url=../evilzone.org

url= ///evilzone.org

url= ///www.linkedln.com@www.evilzone.org/%2f%2e%2e

 

「url」値を悪意のあるサイトに変更するだけでは、ここでは機能せず。

ご覧のとおり、ユーザーがリダイレクトされる URL のハッシュ値のように見える

追加のパラメータ「urlHash」があり。

したがって、「urlHash」値が「url」の実際の有効なハッシュ値である場合、

成功したリダイレクトのみが行われて。

今までのところ、基本的なテクニックでは何の役にも立たないことが

明らかだったので、ヘルプを見つけるために生のリクエストに戻り。


オープンリダイレクション未加工リクエスト

 

リクエストには、ユーザが最後にいたページ (リンクをクリックしたページ) を

示す「referer」フィールドが含まれていてここで心に思い浮かんだことがあり。

「リファラ ヘッダの値を変更して、そこで検証が機能するかどうかを

確認してみてはどうか?」と 。

そこでヘッダ値を他のドメインに変更しましたが、それでもうまくいかず。

 

もう一度試してみて。

LinkedIn Android アプリ リファラを検索し、次のリンクを見つけて。

 

https://github.com/snowplow/referer-parser/issues/131

 

すると、LinkedIn Android リファラ値が

「android-app://com.linkedin.android」として見つかり。

「referer」ヘッダフィールドでリファラー値を使用し。

残りは以下の通りで。

 

 

リダイレクトが成功し、ついに LinkedIn の Open リダイレクト保護

をバイパスすることができて。

 

Best regards, (^^ゞ