hacktricks/pentesting-web/account-takeover.md

9.7 KiB
Raw Blame History

アカウント乗っ取り

{% hint style="success" %} AWSハッキングを学び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践するHackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポートする
{% endhint %}

認証の問題

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

Unicode正規化の問題

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

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

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

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

{% content-ref url="unicode-injection/unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}

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

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

アカウント乗っ取り前の準備

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

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

ページにCORSの誤設定が含まれている場合、ユーザーから機密情報を盗むことができ、アカウントを乗っ取るか、同じ目的のために認証情報を変更させることができるかもしれません:

{% content-ref url="cors-bypass.md" %} cors-bypass.md {% endcontent-ref %}

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

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

{% content-ref url="csrf-cross-site-request-forgery.md" %} csrf-cross-site-request-forgery.md {% endcontent-ref %}

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

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

{% content-ref url="xss-cross-site-scripting/" %} xss-cross-site-scripting {% endcontent-ref %}

同一オリジン + クッキー

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

{% content-ref url="hacking-with-cookies/" %} hacking-with-cookies {% endcontent-ref %}

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

{% content-ref url="reset-password.md" %} reset-password.md {% endcontent-ref %}

レスポンス操作

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

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

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

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

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

レスポンス操作

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

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

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

このレポートから:

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

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

古いクッキー

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

参考文献

{% hint style="success" %} AWSハッキングを学び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践するHackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポートする
{% endhint %}