
Автоматизированный фреймворк для разведки и эксплуатации неправильно сконфигурированных экземпляров Supabase. Включает перечисление схем, извлечение ключей на основе Selenium, проверку обхода RLS и дамп административных данных через service role для исследователей безопасности.
Продвинутый инструмент разведки и эксплуатации для экземпляров Supabase.
SupaHunter — это мощный Python-инструмент, предназначенный для выявления, анализа и эксплуатации неправильно сконфигурированных проектов Supabase. Он выходит за рамки простого перечисления таблиц, предлагая детальную проверку, извлечение ключей на основе Selenium и расширенные проверки повышения привилегий.
/rest/v1/, чтобы составить карту всей схемы базы данных.get_schema, exec_sql и т.д.).fetch/XHR и извлечения заголовков apikey и Authorization на лету.POST, PATCH и DELETE запросы (в безопасном режиме), чтобы проверить, действительно ли применяется Row Level Security или это лишь видимость.INSERT, UPDATE).service_role.auth.users (email, хэши, если возможно), Storage Buckets и многое другое.dump.db) и/или CSV-файлы.Клонируйте репозиторий:
git clone https://github.com/proxydom/supahunter.git
cd supahunter
Установите зависимости:
pip install -r requirements.txt
(Требуются requests, selenium, webdriver-manager, websockets)
Установите Firefox (для Selenium): Инструмент использует Firefox Headless. Убедитесь, что он установлен (хотя он должен скачать его автоматически).
Сканирование одного URL-адреса на предмет открытых ключей и таблиц.
python3 supahunter.py https://target.com
Сканирование списка URL-адресов с включённым Selenium и сохранение результатов в SQLite.
python3 supahunter.py -f targets.txt --selenium --sqlite --download-files
Если у вас уже есть URL API и ключ, используйте их напрямую (работает и с ключами service_role!).
python3 supahunter.py --manual-url https://xyz.supabase.co --manual-key eyJ... ---manual-url projectid.supabase.com
Укажите JWT-токен пользователя (или учётные данные), чтобы проверить обход RLS для авторизованных пользователей.
python3 supahunter.py https://target.com --token "eyJ..."
Или позвольте инструменту попытаться автоматически зарегистрироваться: --email [email protected] --password Hunter123!
Если обнаружен ключ service_role, инструмент автоматически переключается в SERVICE MODE, выполняя дамп auth.users, журналов аудита и всех storage-бакетов.
Этот инструмент предназначен только для образовательных целей и авторизованного тестирования безопасности. Доступ или изменение данных без разрешения незаконны. Автор не несёт ответственности за любое неправомерное использование.
Удачной охоты и оставайтесь в рамках закона, ребята :)
| Флаг | Описание |
|---|
--selenium | Включить Selenium для динамического извлечения ключей (медленнее, но эффективнее). |
--sqlite | Сохранять выгруженные данные в локальную базу данных SQLite (loot/.../dump.db). |
--download-files | Скачивать файлы из публичных/открытых Storage Buckets. |
--fuck-opsec | Агрессивный режим: безлимитная скорость скачивания и количество строк. |
--listen | Слушать Realtime WebSocket события для обнаружения утечек данных в реальном времени. |
--limit N | Ограничить количество выгружаемых строк на таблицу (по умолчанию: без ограничений/авто). |
--dry-run | Только сканирование, без выгрузки данных. |