hacktricks/mobile-pentesting/android-app-pentesting/react-native-application.md
2023-06-03 01:46:23 +00:00

72 lines
6.2 KiB
Markdown

<details>
<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>
- ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
- Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
- Consigue la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
- **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Comparte tus trucos de hacking enviando PRs al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
**Información copiada 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)
React Native es un **marco de aplicación móvil** que se utiliza principalmente para desarrollar aplicaciones para **Android** e **iOS** al permitir el uso de React y las capacidades de la plataforma nativa. En estos días, se ha vuelto cada vez más popular usar React en todas las plataformas.\
Pero la mayor parte del tiempo, la lógica principal de la aplicación se encuentra en el **JavaScript de React Native que se puede obtener** sin necesidad de usar dex2jar.
## **Paso 1**: Confirmemos si la aplicación se construyó en el marco de React Native.
Para comprobar esto, renombra el APK con la extensión zip y luego extrae el APK a una nueva carpeta usando el siguiente comando.
```
cp com.example.apk example-apk.zip
unzip -qq example-apk.zip -d ReactNative
```
Navegue hasta la carpeta `ReactNative` recién creada y encuentre la carpeta `assets`. Dentro de esta carpeta, debería contener `index.android.bundle`. Este archivo contendrá todo el código JavaScript de React en un formato **minificado**. Ingeniería inversa de React Native
```bash
find . -print | grep -i ".bundle$"
```
![Imagen para el post](https://miro.medium.com/max/1559/1\*enjF2H7PclRAIcNCxDIOJw.png)
## **Paso 2**: Crear un archivo llamado `index.html` en el mismo directorio con el siguiente código.
Puedes subir el archivo a [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) o continuar con los siguientes pasos:
```markup
<script src="./index.android.bundle"></script>
```
![Imagen para publicación](https://miro.medium.com/max/1526/1\*Qrg2jrXF8UxwbbRJJVWmRw.png)
Abre el archivo **index.html** en **Google Chrome**. Abre la barra de herramientas de desarrollador (**Command+Option+J para OS X o Control+Shift+J para Windows**), y haz clic en "Sources". Deberías ver un archivo JavaScript, dividido en carpetas y archivos que conforman el paquete principal.
> Si puedes encontrar un archivo llamado `index.android.bundle.map`, podrás analizar el código fuente en un formato no minimizado. Los archivos `map` contienen el mapeo de origen que te permite mapear identificadores minimizados.
## **Paso 3**: busca credenciales y puntos finales sensibles
En esta fase, debes identificar las **palabras clave sensibles** para analizar el código **Javascript**. Un patrón popular en las aplicaciones React Native es el uso de servicios de terceros como Firebase, puntos finales de servicios AWS s3, claves privadas, etc.
Durante mi proceso de **reconocimiento inicial**, he observado que la aplicación utiliza el servicio Dialogflow. Por lo tanto, basándome en esto, he buscado un patrón relacionado con su configuración. Afortunadamente, pude encontrar **credenciales sensibles codificadas en el código Javascript**.
![Imagen para publicación](https://miro.medium.com/max/2086/1\*RAToFnqpp9ndM0lBeMlz6g.png)
<details>
<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>
- ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
- Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
- Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
- **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Comparte tus trucos de hacking enviando PR al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>