Hello there, ('ω')ノ
開発者は怠け者ですを。
脆弱性:
オープンリダイレクト
記事:
https://medium.com/bugbountywriteup/open-redirect-developers-are-lazy-or-maybe-busy-6c51718b10e4
今回は、プライベートプログラムで発見したオープンリダイレクトのバグについて。
ドメインを example.com と名付けて。
アカウントを登録していろいろ調べてみることから始め。
すると、次の URL を見つけて。
https://www.example.com/account/login?next=https%3A%2F%2Fwww.example.com
まず、最も単純なペイロード
https://www.example.com/account/login?next=https%3A%2F%2Fgoogle.com
を試し、うまくいかず。
次に、 next=https://example.com@google.com 、 //google.com 、
javascript:alert(1) (オープン リダイレクトを XSS に変える) などを試しましたが、
どれも機能せず。
そこで HPP (HTTP パラメータ汚染) が頭に浮かび。
何も期待せず、ただ試してみてどうなるか試してみて。
その後、私のURLバーは次のようになり。
https://example.com%2Cwww.google.com
ブラウザはエラーメッセージを投げ。
それを利用できると知った瞬間で。
2 番目の next パラメータの値は、最初のパラメータのようにフィルタリングされず。
%2C は単なるカンマであるため、このリクエストを処理する example.com の
メカニズムは、基本的に 2 番目のものをフィルタリングせずに、
次の 2 つをカンマで結合して。
では、このようにしたらどうなるか。
https://www.example.com/account/login?next=https%3A%2F%2Fwww.example.com&next=@google.com
2 番目のパラメータに「@」が入っていることに注意して。
結局、example.com は https://example.com,@google.com にリダイレクトし、
実際には google.com に移動し。
オープン リダイレクトが成功したので、今報告して。
2日目に、それは重複していてバグが修正されたと言われ。
もしかしたら、修正中に他の間違いを犯した可能性もあり。
それで検査に行って。
上記のようにログイン URL で多くのペイロードを試しましたが、
それ以上悪用することはできず。
彼らがそれをうまく修正し、未解決のリダイレクトバグがなくなったことを
自分自身に納得させ始め。
他のエンドポイントに未解決のリダイレクト バグがないかチェックできて。
そこで、ログインページ(修正済み)の代わりに、
次のようなサインアップページを試してみて。
https://www.example.com/account/signup?next=https%3A%2F%2Fwww.example.com&next=@google.com
そして成功して。
結論としては、開発者はログイン ページを修正していたときに
サインアップ ページを忘れていたということになって。
Best regards, (^^ゞ