hacktricks/mobile-pentesting/android-app-pentesting/react-native-application.md

72 lines
6.4 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>
2023-06-03 13:10:46 +00:00
**Informations copiées de** [**https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7**](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
React Native est un **framework d'application mobile** qui est le plus souvent utilisé pour développer des applications pour **Android** et **iOS** en permettant l'utilisation de React et des capacités de la plate-forme native. Ces jours-ci, il est de plus en plus populaire d'utiliser React sur plusieurs plateformes.\
Mais la plupart du temps, la logique principale de l'application se trouve dans le **JavaScript React Native qui peut être obtenu** sans avoir besoin d'utiliser dex2jar.
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
## **Étape 1** : Confirmons si l'application a été construite sur le framework React Native.
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
Pour vérifier cela, renommez le fichier APK avec l'extension zip, puis extrayez le fichier APK dans un nouveau dossier en utilisant la commande suivante
```
2021-02-01 09:24:10 +00:00
cp com.example.apk example-apk.zip
unzip -qq example-apk.zip -d ReactNative
```
2023-06-03 13:10:46 +00:00
Accédez au dossier `ReactNative` nouvellement créé et trouvez le dossier `assets`. À l'intérieur de ce dossier, il devrait contenir `index.android.bundle`. Ce fichier contiendra tout le code JavaScript React dans un **format minifié.** Ingénierie inverse de React Native
2021-11-03 10:22:49 +00:00
```bash
find . -print | grep -i ".bundle$"
```
2023-06-03 13:10:46 +00:00
![Image pour l'article](https://miro.medium.com/max/1559/1\*enjF2H7PclRAIcNCxDIOJw.png)
2021-11-03 10:22:49 +00:00
2023-06-03 13:10:46 +00:00
## **Étape 2**: Création d'un fichier nommé `index.html` dans le même répertoire avec le code suivant.
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
Vous pouvez télécharger le fichier sur [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) ou continuer avec les étapes suivantes:
2021-05-09 14:39:07 +00:00
```markup
2021-05-09 14:52:12 +00:00
<script src="./index.android.bundle"></script>
2021-02-01 09:24:10 +00:00
```
2023-06-03 13:10:46 +00:00
![Image pour l'article](https://miro.medium.com/max/1526/1\*Qrg2jrXF8UxwbbRJJVWmRw.png)
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
Ouvrez le fichier **index.html** dans **Google Chrome**. Ouvrez la barre d'outils du développeur (**Command+Option+J pour OS X ou Control+Shift+J pour Windows**), et cliquez sur "Sources". Vous devriez voir un fichier JavaScript, divisé en dossiers et fichiers qui composent le bundle principal.
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
> Si vous êtes en mesure de trouver un fichier appelé `index.android.bundle.map`, vous pourrez analyser le code source dans un format non minifié. Les fichiers `map` contiennent la cartographie source qui vous permet de faire correspondre les identificateurs minifiés.
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
## **Étape 3**: recherche de mots de passe sensibles et de points d'extrémité
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
Dans cette phase, vous devez identifier les **mots-clés sensibles** pour analyser le code **Javascript**. Un modèle populaire avec les applications React Native est l'utilisation de services tiers tels que Firebase, les points d'extrémité du service AWS s3, les clés privées, etc.
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
Au cours de mon processus de **reconnaissance initial**, j'ai observé que l'application utilisait le service Dialogflow. Sur cette base, j'ai cherché un modèle lié à sa configuration. Heureusement, j'ai pu trouver des **mots de passe sensibles codés en dur** dans le code Javascript.
2021-02-01 09:24:10 +00:00
2023-06-03 13:10:46 +00:00
![Image pour l'article](https://miro.medium.com/max/2086/1\*RAToFnqpp9ndM0lBeMlz6g.png)
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>