GCP - Firebase Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
La base de datos en tiempo real de Firebase es una base de datos NoSQL alojada en la nube que te permite almacenar y sincronizar datos entre tus usuarios en tiempo real. Aprende más.
Algunos puntos finales de Firebase podrían encontrarse en aplicaciones móviles. Es posible que el punto final de Firebase utilizado esté mal configurado, otorgando privilegios a todos para leer (y escribir) en él.
Esta es la metodología común para buscar y explotar bases de datos de Firebase mal configuradas:
Obtén el APK de la aplicación, puedes usar cualquiera de las herramientas para obtener el APK del dispositivo para esta POC. Puedes usar “APK Extractor” https://play.google.com/store/apps/details?id=com.ext.ui&hl=e
Descompón el APK usando apktool, sigue el siguiente comando para extraer el código fuente del APK.
Ve a res/values/strings.xml y busca esta y busca la palabra clave “firebase”
Puedes encontrar algo como esta URL “https://xyz.firebaseio.com/”
A continuación, ve al navegador y navega a la URL encontrada: https://xyz.firebaseio.com/.json
Pueden aparecer 2 tipos de respuestas:
“Permiso Denegado”: Esto significa que no puedes acceder, por lo que está bien configurado.
Respuesta “null” o un montón de datos JSON: Esto significa que la base de datos es pública y al menos tienes acceso de lectura.
En este caso, podrías verificar los privilegios de escritura, un exploit para probar los privilegios de escritura se puede encontrar aquí: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
Nota interesante: Al analizar una aplicación móvil con MobSF, si encuentra una base de datos de firebase, verificará si esta está disponible públicamente y lo notificará.
Alternativamente, puedes usar Firebase Scanner, un script de python que automatiza la tarea anterior como se muestra a continuación:
Si tienes credenciales para acceder a la base de datos de Firebase, puedes usar una herramienta como Baserunner para acceder más fácilmente a la información almacenada. O un script como el siguiente:
Para probar otras acciones en la base de datos, como escribir en la base de datos, consulta la documentación de Pyrebase4 que se puede encontrar aquí.
Si descompilas la aplicación de iOS y abres el archivo GoogleService-Info.plist
y encuentras la API Key y el APP ID:
API KEY AIzaSyAs1[...]
APP ID 1:612345678909:ios:c212345678909876
Es posible que puedas acceder a información interesante.
Solicitud
curl -v -X POST "https://firebaseremoteconfig.googleapis.com/v1/projects/612345678909/namespaces/firebase:fetch?key=AIzaSyAs1[...]" -H "Content-Type: application/json" --data '{"appId": "1:612345678909:ios:c212345678909876", "appInstanceId": "PROD"}'
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)