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

4.7 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Analyse de l'application React Native

Pour confirmer si l'application a été construite sur le framework React Native, suivez ces étapes :

  1. Renommez le fichier APK avec une extension zip et extrayez-le dans un nouveau dossier en utilisant la commande cp com.example.apk example-apk.zip et unzip -qq example-apk.zip -d ReactNative.

  2. Naviguez vers le dossier ReactNative nouvellement créé et localisez le dossier assets. À l'intérieur de ce dossier, vous devriez trouver le fichier index.android.bundle, qui contient le JavaScript React dans un format minifié.

  3. Utilisez la commande find . -print | grep -i ".bundle$" pour rechercher le fichier JavaScript.

Pour analyser davantage le code JavaScript, créez un fichier nommé index.html dans le même répertoire avec le code suivant :

<script src="./index.android.bundle"></script>

Vous pouvez télécharger le fichier sur https://spaceraccoon.github.io/webpack-exploder/ ou suivre ces étapes :

  1. Ouvrez le fichier index.html dans Google Chrome.

  2. Ouvrez la barre d'outils de développement en appuyant sur Command+Option+J pour OS X ou Control+Shift+J pour Windows.

  3. Cliquez sur "Sources" dans la barre d'outils de développement. Vous devriez voir un fichier JavaScript qui est divisé en dossiers et fichiers, constituant le bundle principal.

Si vous trouvez un fichier appelé index.android.bundle.map, vous pourrez analyser le code source dans un format non minifié. Les fichiers de carte contiennent un mappage source, ce qui vous permet de mapper des identifiants minifiés.

Pour rechercher des informations d'identification sensibles et des points de terminaison, suivez ces étapes :

  1. Identifiez des mots-clés sensibles pour analyser le code JavaScript. Les applications React Native utilisent souvent des services tiers comme Firebase, les points de terminaison de service AWS S3, des clés privées, etc.

  2. Dans ce cas spécifique, l'application a été observée en train d'utiliser le service Dialogflow. Recherchez un modèle lié à sa configuration.

  3. Il a été chanceux que des informations d'identification sensibles codées en dur aient été trouvées dans le code JavaScript lors du processus de reconnaissance.

Références

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}