content:// protocol
これはhttps://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/の投稿の要約です
メディアストア内のファイルのリスト表示
メディアストアで管理されているファイルのリストを表示するには、以下のコマンドを使用できます:
より人間にやさしい出力のために、インデックスされた各ファイルの識別子とパスのみを表示します:
コンテンツプロバイダー
コンテンツプロバイダーは独自のプライベート名前空間で分離されています。プロバイダーへのアクセスには特定の content://
URI が必要です。プロバイダーへのアクセスパスに関する情報は、アプリケーションのマニフェストまたはAndroidフレームワークのソースコードから取得できます。
Chrome によるコンテンツプロバイダーへのアクセス
Android 上の Chrome は content://
スキームを介してコンテンツプロバイダーにアクセスでき、サードパーティアプリケーションによってエクスポートされた写真やドキュメントなどのリソースにアクセスできます。これを示すために、ファイルをメディアストアに挿入し、その後 Chrome を介してアクセスすることができます:
メディアストアにカスタムエントリを挿入します:
新しく挿入されたファイルの識別子を見つける:
ファイルは、ファイルの識別子を使用して構築されたURLを使用してChromeで表示できます。
たとえば、特定のアプリケーションに関連するファイルをリストするには:
Chrome CVE-2020-6516: 同一オリジンポリシーのバイパス
Same Origin Policy(SOP)は、ブラウザーのセキュリティプロトコルであり、異なるオリジンのリソースとのやり取りを明示的に許可されていない限り、Webページがそれらとやり取りすることを制限します。これにより、情報の漏洩やクロスサイトリクエストフォージェリーが防止されます。Chromeはcontent://
をローカルスキームと見なし、各ローカルスキームURLを別々のオリジンとして扱います。
しかし、CVE-2020-6516は、Chromeの脆弱性であり、content://
URL経由で読み込まれたリソースに対するSOPルールのバイパスを許可していました。実際、content://
URLからのJavaScriptコードは、content://
URL経由で読み込まれた他のリソースにアクセスできるようになりました。これは、特にAndroid 10より前のバージョンを実行しているAndroidデバイスでは、スコープ付きストレージが実装されていないため、重大なセキュリティ上の懸念でした。
以下の概念実証は、この脆弱性を示しています。HTMLドキュメントは、/sdcardにアップロードされ、メディアストアに追加された後、そのJavaScript内でXMLHttpRequest
を使用して、メディアストア内の別のファイルの内容にアクセスして表示します。これにより、SOPルールがバイパスされます。
概念実証HTML:
Last updated