A tool for testing Firebase Security Rules by simulating real client SDK behavior. Unlike most Firebase pentest scripts that rely on the REST API, firepwn uses the actual Firebase Client SDK to test both authentication and authorization across multiple Google services.
Configure a target project by entering its firebaseConfig values (apiKey, authDomain, databaseURL, projectId, storageBucket). Supports both individual form fields and pasting a raw JSON/JS config object.
Supports multiple Firebase Authentication methods:
- Email/Password - sign in with existing credentials or register a new account
- Google OAuth - paste an
oauthIdTokencaptured from the target app's sign-in flow (e.g. from browser DevTools) to assume a Google session
- MFA (SMS) - complete multi-factor authentication challenges with SMS verification codes
Full CRUD operations on Firestore:
- Get - with document limit, sort order, and query filters (
==,<,<=,>,>=,array-contains,in) - Set - create documents or overwrite existing ones (with optional merge mode)
- Update - modify specific fields in existing documents
- Delete - remove documents
Supports nested collections/subcollections.
Interact with Firebase Storage buckets:
- List files and directories
- Upload / Download files
- Delete files
- Get metadata for stored objects
Invoke callable Cloud Functions with custom parameters to test authorization on backend logic.
Firebase services are attached to window globals during initialization, so you can run custom queries directly from the browser console:
| Variable | Reference |
|---|---|
window.authService |
Auth |
window.firestoreService |
Firestore |
window.functionsService |
Functions |
window.storageService |
Storage |
All operations are logged in a real-time output panel with success/error/info indicators.
- Launch the tool and fill in the initialization form with the target project's
firebaseConfig. - Click Start to bootstrap the Firebase SDKs. The rest of the UI unlocks once initialization succeeds.
- Use the Auth panel to authenticate (email/password, OAuth, or MFA).
- Run Firestore queries, Storage operations, or Cloud Function invocations from the respective panels to verify authorization controls.
npm install
npm run devThen open http://localhost:3000.




