
Cadre automatisé de reconnaissance et d'exploitation pour les instances Supabase mal configurées. Comprend l'énumération de schéma, l'extraction de clés basée sur Selenium, la vérification de contournement RLS, et le dump admin du rôle de service pour les chercheurs en sécurité.
Outil avancé de reconnaissance et d'exploitation pour les instances Supabase.
SupaHunter est un outil Python puissant conçu pour identifier, analyser et exploiter les projets Supabase mal configurés. Il va au-delà de la simple énumération de tables, offrant des capacités d'inspection approfondies, l'extraction de clés basée sur Selenium et des vérifications avancées d'escalade de privilèges.
/rest/v1/ pour mapper l'ensemble du schéma de la base de données.get_schema, exec_sql, etc.).fetch/XHR et extraire les en-têtes apikey et Authorization à la volée.POST, PATCH et DELETE (mode sûr) pour vérifier si la sécurité au niveau des lignes (RLS) est réellement appliquée ou simplement une façade.INSERT, UPDATE).service_role.auth.users (e-mails, hachages si possible), les buckets de stockage, etc.dump.db) et/ou des fichiers CSV.Cloner le dépôt :
git clone https://github.com/proxydom/supahunter.git
cd supahunter
Installer les dépendances :
pip install -r requirements.txt
(Nécessite requests, selenium, webdriver-manager, websockets)
Installer Firefox (pour Selenium) : L'outil utilise Firefox Headless. Assurez-vous qu'il est installé (il devrait le télécharger automatiquement, cependant).
Analyser une seule URL pour les clés et tables exposées.
python3 supahunter.py https://target.com
Analyser une liste d'URL avec Selenium activé et enregistrer les résultats dans SQLite.
python3 supahunter.py -f targets.txt --selenium --sqlite --download-files
Si vous avez déjà l'URL de l'API et la clé, utilisez-les directement (fonctionne aussi pour les clés service_role !).
python3 supahunter.py --manual-url https://xyz.supabase.co --manual-key eyJ... ---manual-url projectid.supabase.com
Fournir un jeton JWT utilisateur (ou des identifiants) pour tester le contournement RLS pour les utilisateurs authentifiés.
python3 supahunter.py https://target.com --token "eyJ..."
Ou laisser l'outil essayer l'auto-inscription : --email [email protected] --password Hunter123!
Si une clé service_role est détectée, l'outil passe automatiquement en MODE SERVICE, extrayant auth.users, les journaux d'audit et tous les buckets de stockage.
Cet outil est destiné uniquement à des fins éducatives et à des tests de sécurité autorisés. Accéder ou modifier des données sans autorisation est illégal. L'auteur n'est pas responsable de toute utilisation abusive.
Bonne chasse et restez dans la légalité les gars :)
| Drapeau | Description |
|---|
--selenium | Activer Selenium pour l'extraction dynamique de clés (plus lent mais efficace). |
--sqlite | Sauvegarder les données extraites dans une base de données SQLite locale (loot/.../dump.db). |
--download-files | Télécharger les fichiers des buckets de stockage publics/ouverts. |
--fuck-opsec | Mode agressif : vitesse de téléchargement et nombre de lignes illimités. |
--listen | Écouter les événements WebSocket en temps réel pour les fuites de données en direct. |
--limit N | Limiter le nombre de lignes extraites par table (par défaut : illimité/automatique). |
--dry-run | Analyser uniquement, ne pas extraire les données. |