Account Takeover
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
認可の問題
アカウントのメールアドレスを変更できるか試し、確認プロセスを必ず確認する。もし脆弱であれば、メールアドレスをターゲット(被害者)のものに変更し、確認を完了させる。
Unicode 正規化の問題
- ターゲット(被害者)のアカウント
victim@gmail.com - Unicode を使ってアカウントを作成する。例えば:
vićtim@gmail.com
this talk で説明されているように、前述の攻撃はサードパーティの identity providers を悪用しても行える:
- サードパーティの identity に対して、被害者に類似したメールを Unicode 文字で使ってアカウントを作成する(例:
vićtim@company.com)。 - サードパーティプロバイダがメールを検証しないこと。
- もし identity provider がメールを検証するなら、ドメイン部分を攻撃できるかもしれない:
victim@ćompany.comのようにしてそのドメインを登録し、identity provider がドメインの ASCII 版を生成し、被害者のプラットフォームがドメイン名を正規化することを期待する。 - この identity provider 経由で被害者プラットフォームにログインすると、プラットフォームが Unicode 文字を正規化して被害者アカウントへアクセスできる可能性がある。
詳細は Unicode Normalization に関するドキュメントを参照する:
リセットトークンの再利用
ターゲットシステムがreset link を再利用可能にしている場合、gau、wayback、scan.io といったツールを使ってさらに多くの reset link を見つける努力をすべきである。
事前の Account Takeover
- 被害者のメールを使ってプラットフォームにサインアップし、パスワードを設定する(確認を試みるが、被害者のメールにアクセスできない場合は不可能なことがある)。
- 被害者が OAuth を使ってサインアップし、アカウントを確認するまで待つ。
- 通常のサインアップが確認されることを期待し、被害者アカウントにアクセスする。
CORS Misconfiguration による Account Takeover
ページにCORS misconfigurationsがある場合、ユーザから機密情報を盗むことでアカウントを乗っ取る、あるいは同じ目的で認証情報を変更させることができる可能性がある:
CORS - Misconfigurations & Bypass
Csrf による Account Takeover
ページが CSRF に対して脆弱であれば、ユーザにパスワード、メール、または認証情報を変更させ、その後アクセスできるようにすることが可能である:
CSRF (Cross Site Request Forgery)
XSS による Account Takeover
アプリケーションで XSS を見つけた場合、cookies、local storage、またはウェブページ上の情報を盗んでアカウントを乗っ取れる可能性がある:
Same Origin + Cookies
限定的な XSS やサブドメインの takeover を見つけた場合、cookies(例えば fixating など)を操作して被害者アカウントを侵害しようと試みることができる:
パスワードリセット機構の攻撃
Reset/Forgotten Password Bypass
クライアントが提供した username を信頼する security-question リセット
“update security questions” フローが呼び出し元が既に認証済みであっても username パラメータを受け取る場合、バックエンドが典型的に UPDATE ... WHERE user_name = ? のようなクエリを untrusted な値で実行するため、任意のアカウントのリカバリデータ(管理者を含む)を上書きできる。パターンは次の通り:
- 使い捨てのユーザでログインしてセッションクッキーを取得する。
- リセットフォームを通じて被害者の username と新しい回答を送信する。
- 直ちに、先ほど注入した回答を使って security-question login endpoint で認証し、被害者の権限を引き継ぐ。
POST /reset.php HTTP/1.1
Host: file.era.htb
Cookie: PHPSESSID=<low-priv>
Content-Type: application/x-www-form-urlencoded
username=admin_ef01cab31aa&new_answer1=A&new_answer2=B&new_answer3=C
Anything gated by the victim’s $_SESSION context (admin dashboards, dangerous stream-wrapper features, etc.) is now exposed without touching the real answers.
列挙したユーザー名は、上記の overwrite technique を使って標的にするか、FTP/SSH などの補助サービスへの password spraying に再利用できます。
Response Manipulation
認証レスポンスが 単純なブール値に簡約できるなら、false を true に変更して アクセスできるか試してください。
OAuth to Account takeover
Host Header Injection
- パスワードリセット要求を起動した後に Host ヘッダが修正される。
X-Forwarded-Forプロキシヘッダがattacker.comに書き換えられる。- Host、Referrer、Origin ヘッダが同時に
attacker.comに変更される。 - パスワードリセットを実行してメールの再送を選択した後、上記の3つの方法すべてが適用される。
Response Manipulation
- Code Manipulation: ステータスコードが
200 OKに変更される。 - Code and Body Manipulation:
- ステータスコードが
200 OKに変更される。 - レスポンスボディが
{"success":true}または 空のオブジェクト{}に変更される。
これらの操作手法は、JSON がデータ送受信に使われている場面で有効です。
Change email of current session
From this report:
- 攻撃者が自分のメールを新しいものに変更するようリクエストする
- 攻撃者はメール変更の確認リンクを受け取る
- 攻撃者はそのリンクを被害者に送信し、被害者がクリックするようにする
- 被害者のメールは攻撃者が指定したものに変更される
- 攻撃者はパスワードを回復してアカウントを乗っ取ることができる
This also happened in this report.
Bypass email verification for Account Takeover
- 攻撃者は attacker@test.com でログインし、サインアップ時にメールを検証する。
- 攻撃者は検証済みメールを victim@test.com に変更する(メール変更時の再検証がない)
- これによりサイトは victim@test.com によるログインを許可し、被害者ユーザーのメール検証をバイパスできる。
Old Cookies
As explained in this post, it was possible to login into an account, save the cookies as an authenticated user, logout, and then login again.
With the new login, although different cookies might be generated the old ones became to work again.
References
- https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050
- https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea
- 0xdf – HTB Era: security-question IDOR & username oracle
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
HackTricks

