
إطار عمل آلي للاستطلاع والاستغلال لمثيلات Supabase المضبوطة بشكل خاطئ. يتضمن تعداد المخططات، استخراج المفاتيح باستخدام Selenium، التحقق من تجاوز RLS، وتفريغ دور المسؤول الخدمي لباحثي الأمن.
أداة متقدمة للاستطلاع والاستغلال لمثيلات Supabase.
SupaHunter هي أداة بايثون قوية مصممة لتحديد وتحليل واستغلال مشاريع Supabase غير المهيأة بشكل صحيح. تتجاوز الأداة مجرد تعداد الجداول، حيث تقدم قدرات فحص عميقة، واستخراج المفاتيح عبر Selenium، وفحص تصعيد الامتيازات المتقدم.
/rest/v1/ لرسم مخطط قاعدة البيانات بالكامل.get_schema, exec_sql, إلخ).fetch/XHR واستخراج رؤوس apikey و Authorization تلقائيًا.POST و PATCH و DELETE (وضع آمن) للتحقق مما إذا كان أمان مستوى الصف (RLS) مفعلًا حقًا أم مجرد وهم.INSERT، UPDATE).service_role.auth.users (البريد الإلكتروني، التجزئات إن أمكن)، وحاويات التخزين، وما إلى ذلك.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، تتحول الأداة تلقائيًا إلى وضع الخدمة، وتقوم بتفريغ auth.users وسجلات التدقيق وجميع حاويات التخزين.
هذه الأداة مخصصة لأغراض تعليمية واختبارات الأمان المصرح بها فقط. الوصول إلى البيانات أو تعديلها دون إذن غير قانوني. المؤلف غير مسؤول عن أي استخدام خاطئ.
صيد سعيد وابقوا قانونيين يا شباب :)
| الخيار | الوصف |
|---|
--selenium | تفعيل Selenium لاستخراج المفاتيح الديناميكي (أبطأ لكن فعال). |
--sqlite | حفظ البيانات المفرغة في قاعدة بيانات SQLite محلية (loot/.../dump.db). |
--download-files | تنزيل الملفات من حاويات التخزين العامة/المفتوحة. |
--fuck-opsec | الوضع العدواني: سرعة تنزيل غير محدودة وعدد صفوف غير محدود. |
--listen | الاستماع لأحداث WebSocket في الوقت الحقيقي لتسريب البيانات الحية. |
--limit N | تحديد عدد الصفوف المفرغة لكل جدول (الافتراضي: غير محدود/تلقائي). |
--dry-run | المسح فقط، دون تفريغ البيانات. |