# アカウント乗っ取り {{#include ../banners/hacktricks-training.md}} ## **認証の問題** アカウントのメールアドレスを変更しようとし、確認プロセスを**確認する必要があります**。もし**弱い**と判明した場合、メールアドレスを意図した被害者のものに変更し、確認します。 ## **Unicode正規化の問題** 1. 意図した被害者のアカウント `victim@gmail.com` 2. Unicodeを使用してアカウントを作成する必要があります\ 例えば: `vićtim@gmail.com` [**このトーク**](https://www.youtube.com/watch?v=CiIyaZ3x49c)で説明されているように、前述の攻撃はサードパーティのアイデンティティプロバイダーを悪用して行うこともできます: - 被害者に似たメールアドレスを持つサードパーティのアイデンティティでアカウントを作成し、いくつかのUnicode文字を使用します(`vićtim@company.com`)。 - サードパーティプロバイダーはメールを確認しないべきです。 - アイデンティティプロバイダーがメールを確認する場合、ドメイン部分を攻撃することができるかもしれません:`victim@ćompany.com`としてそのドメインを登録し、アイデンティティプロバイダーがドメインのASCIIバージョンを生成し、被害者プラットフォームがドメイン名を正規化することを期待します。 - このアイデンティティプロバイダーを介して被害者プラットフォームにログインし、Unicode文字を正規化し、被害者アカウントにアクセスできるようにします。 詳細については、Unicode正規化に関する文書を参照してください: {{#ref}} unicode-injection/unicode-normalization.md {{#endref}} ## **リセットトークンの再利用** ターゲットシステムが**リセットリンクの再利用を許可する**場合、`gau`、`wayback`、または`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がデータの送信と受信に使用されるシナリオで効果的です。 ## 現在のセッションのメールを変更 [このレポート](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea)から: - 攻撃者は新しいメールに変更するようリクエストします。 - 攻撃者はメールの変更を確認するためのリンクを受け取ります。 - 攻撃者は被害者にリンクを送信し、クリックさせます。 - 被害者のメールは攻撃者が示したものに変更されます。 - 攻撃者はパスワードを回復し、アカウントを乗っ取ることができます。 これは[**このレポート**](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea)でも発生しました。 ### 古いクッキー [**この投稿**](https://medium.com/@niraj1mahajan/uncovering-the-hidden-vulnerability-how-i-found-an-authentication-bypass-on-shopifys-exchange-cc2729ea31a9)で説明されているように、アカウントにログインし、認証されたユーザーとしてクッキーを保存し、ログアウトし、その後再度ログインすることが可能でした。\ 新しいログインでは異なるクッキーが生成されるかもしれませんが、古いクッキーは再び機能するようになりました。 ## 参考文献 - [https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050](https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050) - [https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea) {{#include ../banners/hacktricks-training.md}}