金利0無利息キャッシング – キャッシングできます

 | 

2013-10-22

ブラウザ上で動作するテスティングフレームワーク上でXSSが可能な事例

23:09 | ブラウザ上で動作するテスティングフレームワーク上でXSSが可能な事例 - 金利0無利息キャッシング – キャッシングできます を含むブックマーク はてなブックマーク - ブラウザ上で動作するテスティングフレームワーク上でXSSが可能な事例 - 金利0無利息キャッシング – キャッシングできます

少し前にこちらのXSS脆弱性について報告をした。

のだけれど、その際に同梱されているSeleniumのtest runner用のHTMLXSSがあるのを見つけた。

開発中に使うものだし、パブリックアクセス可能な箇所にtest runnerのHTMLファイルが設置されているという状況はあんまりないんじゃないかと思うのだけれど、実際にそういう事例を著名なサイトで見つけたというのと、通常通りセットアップしてそのような状態になってしまうOSSプロダクトを見つけているので、注意喚起のために書きます。

Seleniumの事例

http://www.seleniumhq.org/

サンプル

iframe内に個々のテストケースURLを指定して自動実行するようになっていて、その箇所でjavascript:なURLを指定するとsrcjavascript:xxxが指定されたiframeを生成して任意scriptが実行可能。

JsUnitの事例

https://github.com/pivotal/jsunit

サンプル

これはjavascript:は読み込めなかったのだけれど、URLを出力する箇所に任意文字列が出力可能になっていて同様にXSSが可能だった。

対応方法

Seleniumの開発元に報告したけれど、それは利用方法の問題が大きいだろうという回答だった。自分もそのように思う。そもそも、テストケースを読み込んで → そこに書かれたコードを実行して → 結果を検証する、という処理をするものなので、任意URLにリクエストを飛ばしたり、任意のコード実行に繋がったりする問題が起きやすいのだと思う。自分が把握している箇所だけを直したところで、安全になるという確証が持てない。

なので、そもそもアップロードしないようにすることを推奨します。どうしても必要な場合は認証をかけるなり、テスト終わったら削除するなりすれば良いと思います。

補足

インストール数が多そうなプロダクト一件に報告中。何か他にも事例があったら追記します。

 |