hacktricks/pentesting-web/account-takeover.md

150 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# アカウント乗っ取り
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してハッキングトリックを共有してください。**
</details>
{% endhint %}
## **認証の問題**
アカウントのメールアドレスを変更しようとし、確認プロセスを**確認する必要があります**。もし**弱い**と判断された場合、メールアドレスを意図した被害者のものに変更し、確認します。
## **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正規化に関する文書を参照してください
{% content-ref url="unicode-injection/unicode-normalization.md" %}
[unicode-normalization.md](unicode-injection/unicode-normalization.md)
{% endcontent-ref %}
## **リセットトークンの再利用**
ターゲットシステムが**リセットリンクの再利用を許可する**場合、`gau`、`wayback`、または`scan.io`などのツールを使用して**さらに多くのリセットリンクを見つける**努力をする必要があります。
## **アカウント乗っ取り前の準備**
1. 被害者のメールアドレスを使用してプラットフォームにサインアップし、パスワードを設定する(被害者のメールにアクセスできない場合、確認を試みることは不可能かもしれません)。
2. 被害者がOAuthを使用してサインアップし、アカウントを確認するまで待ちます。
3. 通常のサインアップが確認されることを期待し、被害者のアカウントにアクセスできるようにします。
## **CORSの誤設定によるアカウント乗っ取り**
ページに**CORSの誤設定**が含まれている場合、ユーザーから**機密情報を盗む**ことができ、アカウントを**乗っ取る**か、同じ目的のために認証情報を変更させることができるかもしれません:
{% content-ref url="cors-bypass.md" %}
[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](csrf-cross-site-request-forgery.md)
{% endcontent-ref %}
## **XSSによるアカウント乗っ取り**
アプリケーションにXSSが見つかった場合、クッキー、ローカルストレージ、またはアカウントを乗っ取ることができる情報を盗むことができるかもしれません
{% content-ref url="xss-cross-site-scripting/" %}
[xss-cross-site-scripting](xss-cross-site-scripting/)
{% endcontent-ref %}
## **同一オリジン + クッキー**
制限されたXSSやサブドメインの乗っ取りが見つかった場合、クッキーを操作例えば、固定するして被害者アカウントを危険にさらすことができるかもしれません
{% content-ref url="hacking-with-cookies/" %}
[hacking-with-cookies](hacking-with-cookies/)
{% endcontent-ref %}
## **パスワードリセットメカニズムの攻撃**
{% content-ref url="reset-password.md" %}
[reset-password.md](reset-password.md)
{% endcontent-ref %}
## **レスポンス操作**
認証レスポンスを**単純なブール値に減らすことができる場合、falseをtrueに変更して**アクセスできるか確認してください。
## OAuthによるアカウント乗っ取り
{% content-ref url="oauth-to-account-takeover.md" %}
[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がデータの送信と受信に使用されるシナリオで効果的です。
## 現在のセッションのメールを変更
[このレポート](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)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してハッキングトリックを共有してください。**
</details>
{% endhint %}