content:// protocol
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
Questo è un riassunto del post https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/
Elenco dei file nel Media Store
Per elencare i file gestiti dal Media Store, può essere utilizzato il comando seguente:
Per un output più comprensibile, visualizzando solo l'identificatore e il percorso di ciascun file indicizzato:
I provider di contenuti sono isolati nel loro namespace privato. L'accesso a un provider richiede l'URI specifico content://
. Le informazioni sui percorsi per accedere a un provider possono essere ottenute dai manifest delle applicazioni o dal codice sorgente del framework Android.
Accesso di Chrome ai Provider di Contenuti
Chrome su Android può accedere ai provider di contenuti tramite lo schema content://
, consentendogli di accedere a risorse come foto o documenti esportati da applicazioni di terze parti. Per illustrare questo, un file può essere inserito nel Media Store e poi accesso tramite Chrome:
Inserisci un'entrata personalizzata nel Media Store:
Scopri l'identificatore del file appena inserito:
Il file può quindi essere visualizzato in Chrome utilizzando un URL costruito con l'identificatore del file.
Ad esempio, per elencare i file relativi a un'applicazione specifica:
Chrome CVE-2020-6516: Bypass della Same-Origin-Policy
La Same Origin Policy (SOP) è un protocollo di sicurezza nei browser che limita le pagine web dall'interagire con risorse provenienti da origini diverse, a meno che non sia esplicitamente consentito da una politica di Cross-Origin-Resource-Sharing (CORS). Questa politica mira a prevenire perdite di informazioni e attacchi di cross-site request forgery. Chrome considera content://
come uno schema locale, implicando regole SOP più severe, dove ogni URL di schema locale è trattato come un'origine separata.
Tuttavia, CVE-2020-6516 era una vulnerabilità in Chrome che consentiva un bypass delle regole SOP per le risorse caricate tramite un URL content://
. Di fatto, il codice JavaScript da un URL content://
poteva accedere ad altre risorse caricate tramite URL content://
, il che rappresentava una significativa preoccupazione per la sicurezza, specialmente sui dispositivi Android che eseguivano versioni precedenti ad Android 10, dove lo storage scoping non era implementato.
La prova di concetto qui sotto dimostra questa vulnerabilità, dove un documento HTML, dopo essere stato caricato sotto /sdcard e aggiunto al Media Store, utilizza XMLHttpRequest
nel suo JavaScript per accedere e visualizzare i contenuti di un altro file nel Media Store, eludendo le regole SOP.
Proof-of-Concept HTML:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
Last updated