2012年2月2日木曜日

サーブレットのgetRequestURI()が取扱い注意な件 - その2

先のブログ記事「サーブレットのgetRequestURIが取扱い注意な件」で書いた、URLのパス中にスクリプト等を仕込める問題は当然サーブレットだけの問題だと思っていました。

ところがGoogleの複数のサービスに、同様にパス中のセミコロン以降を無視するものが多くありました。その中の幾つかは、同じサービス内へのリンクにわざわざそれらを引き継いでいたり、JavaScriptに渡しているものがありました。
正規化されたURLと同じように「"<>」等はエンコードされていましたが、「'」はそのままだったので、シングルクォーテーションで囲まれている部分についてXSSできました。

以前晒したスクリーンショットですが、特にURLを短くできたものについてリクエストURL付きで再度晒します。

2010年12月のBlog Searchは、JavaScriptに仕込めたのでページ表示時に発動しました。


2011年05月のMapsの再発したものはリンクのHREFです。qパラメータのイコールはエンコードされましたが、URL中のパスのイコールは放置でした。


合計で5ページをGoogleのセキュリティチームに報告し、$3,000の報奨金を頂きました。

他にも同様の問題を持っていた製品等がありましたが、また今度にします。
おそらく半年後くらいに「その3」を書くと思います。

0 件のコメント:

コメントを投稿