2012年6月21日に、Android用のGoogle Chromeがリリースされました。 非常に興味深いエラーを見つけることができました。 自分で見てください。
UXSSの脆弱性
予想どおり、この脆弱性は「メイン」のChromeアクティビティには影響しません。 ただし、 Chrome .apkの AndroidManifest.xmlファイルを見てみましょう。
明らかに、 <intent-filter>ディレクティブが宣言されている場合、 com.google.android.apps.chrome.SimpleChromeActivityクラスは別のアプリケーションから呼び出すことができます。
apkからclasses.dexを逆コンパイルし、 SimpleChromeActivityクラスを見てください。
上記のonCreateメソッドでは、新しいタブではなく現在のURLに新しいURLがロードされることに気付くでしょう。
このアクティビティをトリガーするには、Android APIまたはアクティビティマネージャーを使用する2つの方法があります。 Android APIからの呼び出しは少し複雑なので、adbシェルから「am」コマンドを使用しました。
shell@android:/ $ am start -n com.android.chrome/com.google.android.apps.chrome.SimpleChromeActivity -d 'http://www.google.ru'
コンテンツの表示に関するこの問題は、セキュリティとは関係ないと思われます。 タイトルから判断すると、ChromeはMainではなくSimpleChromeActivityにwww.google.comをアップロードし、このアクティビティはChromeのCookieデータベースにアクセスできます。 次のステップは、JavaScriptコードの実装です。
shell@android:/ $ am start -n com.android.chrome/com.google.android.apps.chrome.SimpleChromeActivity -d 'javascript:alert(document.cookie)'
JavaScriptはwww.google.comドメインのコンテキストで実行されました。
資格情報の開示
別の問題-自動ファイルアップロード-は、Chromeのようなブラウザを使用する場合に大きな頭痛の種になりました。 Chromeブラウザでバイナリを開いた場合、確認なしでSDCardディレクトリにダウンロードされます。 悪意のあるソフトウェアNonCompatibleがこのようなオプションを使用した標準ブラウザでも同じことが起こりました。 これが資格情報の開示にどのように関連しているかを尋ねることができます。 システムのChromeディレクトリを見てください。
これらのファイル(Cookie、履歴など)を読み取ることができるのはChromeアプリのみです。 安全に見えます。 file://ラッパーを使用してChromeを起動し、Cookieを開いてみてください。
shell@android:/ $ am start -n com.android.chrome/com.android.chrome.Main -d 'file:///data/data/com.android.chrome/app_chrome/Default/Cookies'
ブラウザーを起動すると、Cookieは/sdcard/Downloads/Cookies.binにダウンロード/コピーされ、システム内のすべてのアプリケーションがそれらを読み取ることができます。
詳細情報をChromiumセキュリティチームに提供しましたが、これらのエラーはバージョン18.0.1025308で修正されました。
参照:
http://code.google.com/p/chromium/issues/detail?id=138035
http://code.google.com/p/chromium/issues/detail?id=138210
著者:アルテムチャイキン ( artemchaykin )。