hacktricks/src/pentesting-web/account-takeover.md

6.8 KiB
Raw Blame History

アカウント乗っ取り

{{#include ../banners/hacktricks-training.md}}

認証の問題

アカウントのメールアドレスを変更しようとし、確認プロセスを確認する必要があります。もし弱いと判明した場合、メールアドレスを意図した被害者のものに変更し、確認します。

Unicode正規化の問題

  1. 意図した被害者のアカウント victim@gmail.com
  2. Unicodeを使用してアカウントを作成する必要があります
    例えば: vićtim@gmail.com

このトークで説明されているように、前述の攻撃はサードパーティのアイデンティティプロバイダーを悪用して行うこともできます:

  • 被害者に似たメールアドレスを持つサードパーティのアイデンティティでアカウントを作成し、いくつかのUnicode文字を使用しますvićtim@company.com)。
  • サードパーティプロバイダーはメールを確認しないべきです。
  • アイデンティティプロバイダーがメールを確認する場合、ドメイン部分を攻撃することができるかもしれません:victim@ćompany.comとしてそのドメインを登録し、アイデンティティプロバイダーがドメインのASCIIバージョンを生成し、被害者プラットフォームがドメイン名を正規化することを期待します。
  • このアイデンティティプロバイダーを介して被害者プラットフォームにログインし、Unicode文字を正規化し、被害者アカウントにアクセスできるようにします。

詳細については、Unicode正規化に関する文書を参照してください

{{#ref}} unicode-injection/unicode-normalization.md {{#endref}}

リセットトークンの再利用

ターゲットシステムがリセットリンクの再利用を許可する場合、gauwayback、またはscan.ioなどのツールを使用してさらに多くのリセットリンクを見つける努力をする必要があります。

アカウント乗っ取り前

  1. 被害者のメールアドレスを使用してプラットフォームにサインアップし、パスワードを設定する必要があります(確認を試みる必要がありますが、被害者のメールにアクセスできない場合は不可能になるかもしれません)。
  2. 被害者がOAuthを使用してサインアップし、アカウントを確認するまで待つ必要があります。
  3. 通常のサインアップが確認されることを期待し、被害者のアカウントにアクセスできるようにします。

CORSの誤設定によるアカウント乗っ取り

ページにCORSの誤設定が含まれている場合、ユーザーから機密情報を盗むことができ、彼のアカウントを乗っ取ることができるかもしれません:

{{#ref}} cors-bypass.md {{#endref}}

CSRFによるアカウント乗っ取り

ページがCSRFに対して脆弱な場合、ユーザーにパスワード、メール、または認証を変更させることができ、その後アクセスできるようになります:

{{#ref}} csrf-cross-site-request-forgery.md {{#endref}}

XSSによるアカウント乗っ取り

アプリケーションにXSSを見つけた場合、クッキー、ローカルストレージ、またはアカウントを乗っ取ることができる情報を盗むことができるかもしれません

{{#ref}} xss-cross-site-scripting/ {{#endref}}

同一オリジン + クッキー

制限されたXSSまたはサブドメインの乗っ取りを見つけた場合、クッキーを操作例えば、固定するして被害者アカウントを危険にさらすことができます

{{#ref}} hacking-with-cookies/ {{#endref}}

パスワードリセットメカニズムへの攻撃

{{#ref}} reset-password.md {{#endref}}

レスポンス操作

認証レスポンスを単純なブール値に減らすことができる場合、falseをtrueに変更してアクセスできるか確認してください。

OAuthによるアカウント乗っ取り

{{#ref}} oauth-to-account-takeover.md {{#endref}}

ホストヘッダーインジェクション

  1. パスワードリセットリクエストの開始に続いて、ホストヘッダーが変更されます。
  2. X-Forwarded-Forプロキシヘッダーがattacker.comに変更されます。
  3. ホスト、リファラー、およびオリジンヘッダーが同時にattacker.comに変更されます。
  4. パスワードリセットを開始し、メールを再送信することを選択した後、上記の3つの方法がすべて使用されます。

レスポンス操作

  1. コード操作: ステータスコードが200 OKに変更されます。
  2. コードとボディの操作:
  • ステータスコードが200 OKに変更されます。
  • レスポンスボディが{"success":true}または空のオブジェクト{}に変更されます。

これらの操作技術は、JSONがデータの送信と受信に使用されるシナリオで効果的です。

現在のセッションのメールを変更

このレポートから:

  • 攻撃者は新しいメールに変更するようリクエストします。
  • 攻撃者はメールの変更を確認するためのリンクを受け取ります。
  • 攻撃者は被害者にリンクを送信し、クリックさせます。
  • 被害者のメールは攻撃者が示したものに変更されます。
  • 攻撃者はパスワードを回復し、アカウントを乗っ取ることができます。

これはこのレポートでも発生しました。

古いクッキー

この投稿で説明されているように、アカウントにログインし、認証されたユーザーとしてクッキーを保存し、ログアウトし、その後再度ログインすることが可能でした。
新しいログインでは異なるクッキーが生成されるかもしれませんが、古いクッキーは再び機能するようになりました。

参考文献

{{#include ../banners/hacktricks-training.md}}