
設定ミスのあるSupabaseインスタンス向けの自動偵察・エクスプロイトフレームワーク。スキーマ列挙、Seleniumベースのキー抽出、RLSバイパス検証、およびセキュリティ研究者向けのサービスロール管理ダンプを特長としています。
Supabase インスタンス向け高度な偵察・悪用ツール。
SupaHunter は、設定ミスのある Supabase プロジェクトを特定、分析、悪用するために設計された強力な Python ツールです。単純なテーブル列挙を超え、深い検査機能、Selenium ベースのキー抽出、高度な権限昇格チェックを提供します。
/rest/v1/ を自動的に取得・解析し、データベース全体のスキーマをマッピングします。get_schema, exec_sql など) をプローブします。fetch/XHR リクエストをインターセプトし、apikey と Authorization ヘッダーをリアルタイムで抽出します。POST, PATCH, DELETE リクエスト(セーフモード)を実行し、Row Level Security が実際に適用されているか、単なる見せかけかを検証します。INSERT, UPDATE イベント) をインターセプトします。service_role キーを自動検出します。auth.users(メール、可能であればハッシュ)、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 ヘッドレスを使用します。インストールされていることを確認してください(自動的にダウンロードされるはずですが)。
単一の URL をスキャンして、露出したキーとテーブルを探します。
python3 supahunter.py https://target.com
Selenium を有効にして URL リストをスキャンし、結果を SQLite に保存します。
python3 supahunter.py -f targets.txt --selenium --sqlite --download-files
API URL とキーがすでにある場合は、直接使用します(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 キーが検出されると、ツールは自動的に サービスモード に切り替わり、auth.users、監査ログ、すべてのストレージバケットをダンプします。
このツールは教育目的および許可されたセキュリティテストのみを対象としています。許可なくデータにアクセスまたは変更することは違法です。作者は誤用について一切の責任を負いません。
*楽しいハンティングを、そして合法的に行動してください :) *
| フラグ | 説明 |
|---|
--selenium | 動的キー抽出のために Selenium を有効化(低速だが効果的)。 |
--sqlite | ダンプデータをローカルの SQLite データベースに保存 (loot/.../dump.db)。 |
--download-files | パブリック/オープンな Storage Buckets からファイルをダウンロード。 |
--fuck-opsec | アグレッシブモード: ダウンロード速度と行数の制限なし。 |
--listen | リアルタイム WebSocket イベントをリッスンしてライブデータ漏洩を監視。 |
--limit N | テーブルごとのダンプ行数を制限 (デフォルト: 無制限/自動)。 |
--dry-run | スキャンのみ、データはダンプしない。 |