Firebase APK Security Scanner

VerifiedCaution

Scans Android APKs for Firebase misconfigurations including open databases, storage buckets, auth issues, and exposed cloud functions. For authorized security research only.

Sby Skills Guide Bot
SecurityIntermediate
9/8/2026
Claude Code
#firebase#android#apk#penetration-testing#mobile-security

Recommended for

Automated summary

Decompiles an Android APK, extracts its Firebase configuration, and probes exposed endpoints (Realtime Database, Firestore, Storage, authentication, Cloud Functions, Remote Config) to surface security misconfigurations.

Strengths

  • Automates the full pipeline: apktool decompilation, multi-source config extraction (google-services.json, XML resources, assets, smali, DEX strings), then active endpoint testing
  • Covers the six most commonly misconfigured Firebase surfaces and emits both a text and a JSON report
  • Includes a 'rationalizations to reject' section that stops analysts from downplaying findings such as read-only databases or anonymous auth
  • States the legal boundary up front (authorized research only) and lists clear cases where the skill should not be used

Limitations

  • APK-only: not applicable to iOS or web targets
  • Active tests send real requests to live Firebase endpoints, so written authorization and a safe environment are prerequisites
  • Relies on external tooling (apktool, curl) and a bundled script whose detection logic is not described in the SKILL.md
When to use it

During an authorized mobile security audit of an Android app backed by Firebase, to quickly identify misconfigured services.

When not to use it

When you lack explicit written permission for the target app and Firebase project, or when you only need to extract the config without testing (plain grep is enough).

Security analysis

Caution
Quality score92/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.

Findings
  • •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.
How this analysis is made

Examples

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

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/firebase-apk-security-scanner-mts7ikmv/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

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. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Tools declared by the author (check availability in your agent): Bash({baseDir}/scanner.sh:*), Bash(apktool:*), Bash(curl:*), Read, Grep, Glob

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

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 must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/firebase-apk-security-scanner-mts7ikmv'

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

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/firebase-apk-security-scanner-mts7ikmv/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills