
エジプトのエンジニアであるYaser Aliは、PayPalの調査中に、サービスで使用されるCSRF攻撃( クロスサイトリクエストフォージェリ )に対する保護システムを完全にバイパスできる脆弱性を発見しました。 彼はこの脆弱性をブログで詳しく説明し、脆弱性を説明する投稿を翻訳し、改作しました。
この種の攻撃を成功させるには、攻撃者は、被害者に代わってリクエストを作成できる特別に準備されたリンクへの不正なアクセスを被害者に強制する必要があります。 攻撃を受ける可能性のあるWebサイトでユーザーが許可されている場合にのみ攻撃が可能です。
この投稿は、 Web-payment.ru交換機を監視する支払いシステムに関するサイトの企業ブログ専用に準備されました。
再利用可能なCSRFトークン
Aliが最初に見つけたのは、CSRFトークンを再利用する機能でした。これにより、ユーザーが行った各リクエストの信頼性を検証できます。 トークンはリクエストの本文にあり、セキュリティを確保するために個々のリクエストごとにAuthパラメーターが変更されます。 ただし、詳細な調査の結果、再利用しても、 Authは特定のユーザー名または電子メールアドレスに対して引き続き動作することがわかりました。 攻撃者が以前に生成されたCSRFトークンを見つけることができた場合、その時点で許可されているユーザーに代わって簡単にアクションを実行できます。
それでも、被害者のセッションからAuth値を取得することは不可能であるため、この可能性は実際の危険をもたらすとは思われません。
CSRF認証バイパス
Authパラメーターは、すべてのユーザーリクエストをチェックすることがわかっています。 Aliは、「不正な」攻撃者が送金要求を送信しようとした場合に何が起こるかを確認することにしました。 この場合、PayPalはクラッカーにメールアドレスまたはパスワードを提供するよう依頼します。 応答として、攻撃者は被害者の電子メールアドレスを提供し、パスワードを入力してリクエストをインターセプトできます。リクエストには、このユーザーのリクエストの承認を可能にする真の再利用可能なCSRF承認トークンが含まれます。
さらなる分析により、ユーザーがログインする前にトークンを提供できるページからPOSTリクエストをインターセプトすることにより、攻撃者はすべてのユーザーに適用可能なCSRF認証を取得できることが示されました。 このような魔法のCSRF認証は、たとえばwww.paypal.com/eg/cgi-bin/webscr?cmd=_send-moneyで見つけることができます。 これらすべてのアクションを実行すると、攻撃者は実際のユーザーに代わってほとんどすべてのリクエストを偽造できます。

アプリケーションは、ログアウトしたユーザーに対して本物の認証トークンを生成します!
サービスのパスワードを変更するプロセスを確認した後、Aliは、クラッカーが秘密の質問を知らない限り、ユーザーのパスワードを変更できないという結論に達しました。 さらに、ユーザーは、パスワードを知らない限り、セキュリティの質問を変更できません。
セキュリティシステムをバイパスしてセキュリティの質問を変更する
さらなる調査により、ユーザーが登録を開始するとすぐに開始される秘密の質問の「作成」プロセスはパスワードで保護されておらず、パスワードを入力せずに秘密の質問を繰り返しリセットするために使用できることが示されました。 したがって、CFSR Authを自由に使用できるため、攻撃者はこの手順を偽って、被害者の秘密の質問を変更できます。

秘密の質問を「作成」する最初の試みはパスワードで保護されておらず、将来繰り返し使用することができます
上記のすべての手順を実行した後、攻撃者はCSRFの原則を使用してリクエストを偽造することにより、特定のPayPalユーザーを対象とした攻撃を実行し、アカウントを完全に制御できます。 とりわけ、クラッカーは次のリクエストを偽造できるようになります。
- メールアドレスの追加/削除/確認
- セキュリティの質問を変更する
- 配送先住所または請求先住所を変更する
- 支払い方法を変更する
- ユーザー設定の変更(通知、携帯電話番号の設定)
- 特権ユーザーをビジネスアカウントに追加する
- ...その他...
Aliは、プロセスを自動化し、攻撃者が実際にこの脆弱性を悪用する方法を示すために、Pythonでインタラクティブサーバーを作成しました。
ハッキングプロセスを示す著者のビデオ:
ただし、バグ自体は8月初旬に発見され、エンジニアはクローズされた脆弱性を時間通りに通知し、その後、バグに関する情報がリリースされたため、現時点ではPayPalに対する脅威はなくなりました。
彼の発見で、アリは彼自身の承認により、PayPalがシステムを保護する上で重大な問題を報告したすべての人に提供する最大の報酬、10,000ドルを受け取りました。
