Shikata Ga Nai

Private? There is no such things.

Developers are lazy(or maybe busy)を訳してみた

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 パラメータ汚染) が頭に浮かび。

 

https://www.example.com/account/login?next=https%3A%2F%2Fwww.example.com&next=https%3A%2F%2Fgoogle.com

 

何も期待せず、ただ試してみてどうなるか試してみて。

その後、私の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, (^^ゞ