Scanner de sécurité Firebase pour APK

VérifiéPrudence

Analyse les APK Android pour détecter des erreurs de configuration Firebase : bases ouvertes, stockage, authentification et fonctions cloud exposées. Pour une recherche de sécurité autorisée uniquement.

Spar Skills Guide Bot
SecuriteIntermédiaire
08/09/2026
Claude Code
#firebase#android#apk#penetration-testing#mobile-security

Recommandé pour

Synthèse automatique

Décompile un APK Android, en extrait la configuration Firebase et teste les points d'accès exposés (Realtime Database, Firestore, Storage, authentification, Cloud Functions, Remote Config) pour détecter des mauvaises configurations de sécurité.

Points forts

  • Automatise toute la chaîne : décompilation apktool, extraction multi-sources (google-services.json, ressources XML, assets, smali, chaînes DEX) puis tests actifs des endpoints
  • Couvre les six surfaces Firebase les plus souvent mal configurées, avec un rapport texte et JSON généré automatiquement
  • Intègre une section « rationalisations à rejeter » qui empêche de minimiser des constats comme une base en lecture seule ou un accès anonyme
  • Rappelle explicitement le cadre légal (recherche autorisée uniquement) et liste les cas où ne pas l'utiliser

Limites

  • Spécifique aux APK Android : inutilisable pour des cibles iOS ou web
  • Les tests actifs envoient des requêtes réelles vers les endpoints Firebase, ce qui suppose une autorisation écrite et un environnement de test
  • Dépend d'outils externes (apktool, curl) et d'un script embarqué dont la qualité des détections n'est pas détaillée dans le SKILL.md
Quand l'utiliser

Lors d'un audit de sécurité mobile autorisé d'une application Android s'appuyant sur un backend Firebase, pour identifier rapidement les services mal configurés.

Quand l'éviter

Si vous n'avez pas d'autorisation écrite sur l'application et le projet Firebase ciblés, ou si vous voulez seulement extraire la configuration sans tester (un simple grep suffit).

Analyse de sécurité

Prudence
Score qualité92/100

The skill is a legitimate security auditing tool with explicit authorization warnings and a 'When NOT to Use' section. However, it instructs powerful network actions (curl to Firebase auth/database/storage) and APK decompilation, which could be misused for unauthorized testing or data manipulation. The dual-use nature warrants caution rather than safe.

Points d'attention
  • •Uses curl to test Firebase endpoints including signup, anonymous auth, database read/write, and storage write access, which could cause unauthorized account creation or data modification if used without proper authorization.
  • •Requires Bash with apktool and curl for decompiling APKs and making network requests to remote Firebase services.
Comment cette analyse est faite

Exemples

Audit d'un APK unique
Scan ./samples/myapp-release.apk for Firebase misconfigurations and summarize the report.
Scan d'un répertoire d'APK
Run the Firebase APK scanner against ./apks/ and give me a table of vulnerable apps with their issue counts.
Vérification d'endpoints précis
We have written authorization to test this app. Scan ./target.apk and focus the report on open Realtime Database and Storage bucket access.

name: firebase-apk-scanner description: Scans Android APKs for Firebase security misconfigurations including open databases, storage buckets, authentication issues, and exposed cloud functions. Use when analyzing APK files for Firebase vulnerabilities, performing mobile app security audits, or testing Firebase endpoint security. For authorized security research only. argument-hint: [apk-file-or-directory] allowed-tools: Bash({baseDir}/scanner.sh:), Bash(apktool:), Bash(curl:*), Read, Grep, Glob disable-model-invocation: true

Firebase APK Security Scanner

You are a Firebase security analyst. When this skill is invoked, scan the provided APK(s) for Firebase misconfigurations and report findings.

When to Use

  • Auditing Android applications for Firebase security misconfigurations
  • Testing Firebase endpoints extracted from APKs (Realtime Database, Firestore, Storage)
  • Checking authentication security (open signup, anonymous auth, email enumeration)
  • Enumerating Cloud Functions and testing for unauthenticated access
  • Mobile app security assessments involving Firebase backends
  • Authorized penetration testing of Firebase-backed applications

When NOT to Use

  • Scanning apps you do not have explicit authorization to test
  • Testing production Firebase projects without written permission
  • When you only need to extract Firebase config without testing (use manual grep/strings instead)
  • For non-Android targets (iOS, web apps) - this skill is APK-specific
  • When the target app does not use Firebase

Rationalizations to Reject

When auditing, reject these common rationalizations that lead to missed or downplayed findings:

  • "The database is read-only so it's fine" - Data exposure is still a critical finding; PII, API keys, and business data may be leaked
  • "It's just anonymous auth, not real accounts" - Anonymous tokens bypass auth != null rules and can access "authenticated-only" resources
  • "The API key is public anyway" - A public API key does not justify open database rules or disabled auth restrictions
  • "There's no sensitive data in there" - You cannot know what data will be stored in the future; insecure rules are vulnerabilities regardless of current content
  • "It's an internal app" - APKs can be extracted from any device; "internal" apps are not protected from reverse engineering
  • "We'll fix it before launch" - Document the finding; pre-launch vulnerabilities frequently ship to production

Reference Documentation

For detailed vulnerability patterns and exploitation techniques, consult:

How to Use This Skill

The user will provide an APK file or directory: $ARGUMENTS

Workflow

Step 1: Validate Input

First, verify the target exists:

ls -la $ARGUMENTS

If $ARGUMENTS is empty, ask the user to provide an APK path.

Step 2: Run the Scanner

Execute the bundled scanner script on the target:

{baseDir}/scanner.sh $ARGUMENTS

The scanner will:

  1. Decompile the APK using apktool
  2. Extract Firebase configuration from all sources (google-services.json, XML resources, assets, smali code, DEX strings)
  3. Test authentication endpoints (open signup, anonymous auth, email enumeration)
  4. Test Realtime Database (unauthenticated read/write, auth bypass)
  5. Test Firestore (document access, collection enumeration)
  6. Test Storage buckets (listing, write access)
  7. Test Cloud Functions (enumeration, unauthenticated access)
  8. Test Remote Config exposure
  9. Generate reports in text and JSON format

Step 3: Present Results

After the scanner completes, read and summarize the results:

cat firebase_scan_*/scan_report.txt

Present findings in this format:


Scan Summary

| Metric | Value | |--------|-------| | APKs Scanned | X | | Vulnerable | X | | Total Issues | X |

Extracted Configuration

| Field | Value | |-------|-------| | Project ID | extracted_value | | Database URL | extracted_value | | Storage Bucket | extracted_value | | API Key | extracted_value | | Auth Domain | extracted_value |

Vulnerabilities Found

| Severity | Issue | Evidence | |----------|-------|----------| | CRITICAL | Description | Brief evidence | | HIGH | Description | Brief evidence |

Remediation

Provide specific fixes for each vulnerability found. Reference the Vulnerability Patterns for secure code examples.


Manual Testing (If Scanner Fails)

If the scanner script is unavailable or fails, perform manual extraction and testing:

Extract Configuration

Search for Firebase config in decompiled APK:

# Decompile
apktool d -f -o ./decompiled $ARGUMENTS

# Find google-services.json
find ./decompiled -name "google-services.json"

# Search XML resources
grep -r "firebaseio.com\|appspot.com\|AIza" ./decompiled/res/

# Search assets (hybrid apps)
grep -r "firebaseio.com\|AIza" ./decompiled/assets/

Test Endpoints

Once you have the PROJECT_ID and API_KEY:

Authentication:

# Test open signup
curl -s -X POST -H "Content-Type: application/json" \
  -d '{"email":"test@test.com","password":"Test123!","returnSecureToken":true}' \
  "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=API_KEY"

# Test anonymous auth
curl -s -X POST -H "Content-Type: application/json" \
  -d '{"returnSecureToken":true}' \
  "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=API_KEY"

Database:

# Realtime Database read
curl -s "https://PROJECT_ID.firebaseio.com/.json"

# Firestore read
curl -s "https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)/documents"

Storage:

# List bucket
curl -s "https://firebasestorage.googleapis.com/v0/b/PROJECT_ID.appspot.com/o"

Remote Config:

curl -s -H "x-goog-api-key: API_KEY" \
  "https://firebaseremoteconfig.googleapis.com/v1/projects/PROJECT_ID/remoteConfig"

Severity Classification

  • CRITICAL: Unauthenticated database read/write, storage write, open signup on private apps
  • HIGH: Anonymous auth enabled, storage bucket listing, collection enumeration
  • MEDIUM: Email enumeration, accessible cloud functions, remote config exposure
  • LOW: Information disclosure without sensitive data

Important Guidelines

  1. Authorization required - Only scan APKs you have permission to test
  2. Clean up test data - The scanner automatically removes test entries it creates
  3. Save tokens - If anonymous auth succeeds, use the token for authenticated bypass testing
  4. Test all regions - Cloud Functions may be deployed to us-central1, europe-west1, asia-east1, etc.
  5. Multiple instances - Some apps use multiple Firebase projects; test all discovered configurations

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/firebase-apk-security-scanner-mts7ikmv/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/firebase-apk-security-scanner-mts7ikmv' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/firebase-apk-security-scanner-mts7ikmv/download' --output '.skill-downloads/firebase-apk-security-scanner-mts7ikmv/SKILL.md.part' && mv '.skill-downloads/firebase-apk-security-scanner-mts7ikmv/SKILL.md.part' '.skill-downloads/firebase-apk-security-scanner-mts7ikmv/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash({baseDir}/scanner.sh:*), Bash(apktool:*), Bash(curl:*), Read, Grep, Glob

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/firebase-apk-security-scanner-mts7ikmv/SKILL.md' && test -s '.skill-downloads/firebase-apk-security-scanner-mts7ikmv/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/firebase-apk-scanner' && cp -R '.skill-downloads/firebase-apk-security-scanner-mts7ikmv' '.claude/skills/firebase-apk-scanner'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/firebase-apk-security-scanner-mts7ikmv'

openskills read 'firebase-apk-security-scanner-mts7ikmv'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/firebase-apk-security-scanner-mts7ikmv/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires