
Automated reconnaissance and exploitation framework for misconfigured Supabase instances. Features schema enumeration, Selenium-based key extraction, RLS bypass verification, and service role admin dump for security researchers.
Advanced Reconnaissance & Exploitation Tool for Supabase Instances.
SupaHunter is a powerful Python tool designed to identify, analyze, and exploit misconfigured Supabase projects. It goes beyond simple table enumeration, offering deep inspection capabilities, Selenium-based key extraction, and advanced privilege escalation checks.
/rest/v1/ to map the entire database schema.get_schema, exec_sql, etc.).fetch/XHR requests and extract apikey and Authorization headers on the fly.POST, PATCH, and DELETE requests (safe mode) to verify if Row Level Security is actually enforced or just a facade.INSERT, UPDATE events).service_role keys.auth.users (emails, hashes if possible), Storage Buckets, and so on.dump.db) and/or CSV files.Clone the repo:
git clone https://github.com/proxydom/supahunter.git
cd supahunter
Install dependencies:
pip install -r requirements.txt
(Requires requests, selenium, webdriver-manager, websockets)
Install Firefox (for Selenium): The tool uses Firefox Headless. Ensure it is installed (it should download it automatically, tho)
Scan a single URL for exposed keys and tables.
python3 supahunter.py https://target.com
Scan a list of URLs with Selenium enabled and save results to SQLite.
python3 supahunter.py -f targets.txt --selenium --sqlite --download-files
If you already have the API URL and Key, use them directly (works for service_role keys too!).
python3 supahunter.py --manual-url https://xyz.supabase.co --manual-key eyJ... ---manual-url projectid.supabase.com
Provide a user JWT token (or credentials) to test RLS bypass for authenticated users.
python3 supahunter.py https://target.com --token "eyJ..."
Or let the tool try auto-signup: --email [email protected] --password Hunter123!
If a service_role key is detected, the tool automatically switches to SERVICE MODE, dumping auth.users, audit logs, and all storage buckets.
This tool is for educational purposes and authorized security testing only. Accessing or modifying data without permission is illegal. The author is not responsible for any misuse.
Happy Hunting and stay legal boys :)
| Flag | Description |
|---|
--selenium | Enable Selenium for dynamic key extraction (slower but effective). |
--sqlite | Save dumped data to a local SQLite database (loot/.../dump.db). |
--download-files | Download files from public/open Storage Buckets. |
--fuck-opsec | Aggressive Mode: unlimited download speed and row count. |
--listen | Listen to Realtime WebSocket events for live data leakage. |
--limit N | Limit dumped rows per table (Default: unlimited/auto). |
--dry-run | Scan only, do not dump data. |