content:// protocol
Este es un resumen del post https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/
Listado de Archivos en Media Store
Para listar los archivos gestionados por Media Store, se puede utilizar el siguiente comando:
Para obtener una salida más amigable para el usuario, mostrando solo el identificador y la ruta de cada archivo indexado:
Los proveedores de contenido están aislados en su propio espacio de nombres privado. El acceso a un proveedor requiere el URI específico content://
. La información sobre las rutas para acceder a un proveedor se puede obtener de los manifiestos de aplicaciones o del código fuente del framework de Android.
Acceso de Chrome a los Proveedores de Contenido
Chrome en Android puede acceder a proveedores de contenido a través del esquema content://
, lo que le permite acceder a recursos como fotos o documentos exportados por aplicaciones de terceros. Para ilustrar esto, se puede insertar un archivo en el Media Store y luego acceder a él a través de Chrome:
Insertar una entrada personalizada en el Media Store:
Descubre el identificador del archivo recién insertado:
El archivo luego se puede ver en Chrome utilizando una URL construida con el identificador del archivo.
Por ejemplo, para listar archivos relacionados con una aplicación específica:
Chrome CVE-2020-6516: Bypass de la Política de Mismo Origen
El Same Origin Policy (SOP) es un protocolo de seguridad en los navegadores que restringe a las páginas web de interactuar con recursos de diferentes orígenes a menos que sea explícitamente permitido por una política de Compartir Recursos de Origen Cruzado (CORS). Esta política tiene como objetivo prevenir filtraciones de información y falsificación de solicitudes entre sitios. Chrome considera content://
como un esquema local, lo que implica reglas de SOP más estrictas, donde cada URL de esquema local se trata como un origen separado.
Sin embargo, CVE-2020-6516 fue una vulnerabilidad en Chrome que permitía eludir las reglas de SOP para recursos cargados a través de una URL content://
. En efecto, el código JavaScript de una URL content://
podía acceder a otros recursos cargados a través de URLs content://
, lo que representaba una preocupación de seguridad significativa, especialmente en dispositivos Android que ejecutaban versiones anteriores a Android 10, donde el almacenamiento con ámbito no estaba implementado.
El siguiente ejemplo de concepto demuestra esta vulnerabilidad, donde un documento HTML, después de ser cargado en /sdcard y añadido a la Media Store, utiliza XMLHttpRequest
en su JavaScript para acceder y mostrar el contenido de otro archivo en la Media Store, eludiendo las reglas de SOP.
HTML de Ejemplo de Concepto:
Última actualización