React Native Application

Support HackTricks

Análisis de Aplicaciones React Native

Para confirmar si la aplicación fue construida en el marco de React Native, sigue estos pasos:

  1. Cambia el nombre del archivo APK con una extensión zip y extráelo a una nueva carpeta usando el comando cp com.example.apk example-apk.zip y unzip -qq example-apk.zip -d ReactNative.

  2. Navega a la carpeta ReactNative recién creada y localiza la carpeta de assets. Dentro de esta carpeta, deberías encontrar el archivo index.android.bundle, que contiene el JavaScript de React en un formato minificado.

  3. Usa el comando find . -print | grep -i ".bundle$" para buscar el archivo JavaScript.

Para analizar más a fondo el código JavaScript, crea un archivo llamado index.html en el mismo directorio con el siguiente código:

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

Puedes subir el archivo a https://spaceraccoon.github.io/webpack-exploder/ o seguir estos pasos:

  1. Abre el archivo index.html en Google Chrome.

  2. Abre la Barra de Herramientas del Desarrollador presionando Command+Option+J para OS X o Control+Shift+J para Windows.

  3. Haz clic en "Sources" en la Barra de Herramientas del Desarrollador. Deberías ver un archivo JavaScript que está dividido en carpetas y archivos, formando el paquete principal.

Si encuentras un archivo llamado index.android.bundle.map, podrás analizar el código fuente en un formato no minificado. Los archivos de mapa contienen mapeo de origen, lo que te permite mapear identificadores minificados.

Para buscar credenciales y puntos finales sensibles, sigue estos pasos:

  1. Identifica palabras clave sensibles para analizar el código JavaScript. Las aplicaciones de React Native a menudo utilizan servicios de terceros como Firebase, puntos finales del servicio AWS S3, claves privadas, etc.

  2. En este caso específico, se observó que la aplicación estaba utilizando el servicio Dialogflow. Busca un patrón relacionado con su configuración.

  3. Fue afortunado que se encontraran credenciales sensibles codificadas en el código JavaScript durante el proceso de reconocimiento.

Referencias

Support HackTricks

Last updated