
زاحف سريع بشكل مذهل للعثور على الأشياء الجيدة في كود المصدر! 😎🔥
بيئات الاختبار: Windows, MAC, linux، ونظام ويندوز الفرعي للينكس (WSL)
ادعم هذا المشروع عن طريق أن تصبح راعيًا. تحقق من هؤلاء الرعاء الرائعين:
توفر Oxylabs وكلاء متميزين مع أكثر من 100 مليون عنوان IP عبر 195 دولة وواجهات برمجية جاهزة للاستخدام للكشط. يمكنك استخدام الرمز الترويجي الفريد boost35 للحصول على خصم 35% على الوكلاء السكنيين والجوالين، وWeb Unblocker، وواجهات الكشط البرمجية.
الزحف عبر الردود للعثور على نقاط النهاية المخفية، إما عن طريق إرسال الطلبات، أو من ملفات الردود المحلية (إن وجدت).
إنشاء قائمة بالمتغيرات الجافاسكريبت الموجودة في المصدر
استخراج جميع روابط التواصل الاجتماعي من المواقع الإلكترونية لتحديد الروابط المحتملة المكسورة
القوة العمياء (Brute force) للمضيف باستخدام قائمة كلمات.
الحصول على رموز الحالة لقائمة عناوين URLs / تصفية النطاقات الحية من قائمة المضيفين.
جميع الميزات المذكورة أعلاه تعمل بسرعة كبيرة.
يستخدم SourceWolf وحدة Session من مكتبة requests، مما يعني أنه يعيد استخدام اتصال TCP، مما يجعله سريعًا حقًا.
يوفر لك SourceWolf خيار الزحف عبر ملفات الردود محليًا حتى لا تقوم بإرسال طلبات مرة أخرى إلى نقطة نهاية لديك بالفعل نسخة من ردها.
تكون نقاط النهاية النهائية بشكل كامل مع مضيف مثل https://example.com/api/admin وليس كـ /api/admin. يمكن أن يكون هذا مفيدًا عند فحص قائمة من المضيفين.
> python3 sourcewolf.py -h
-l LIST, --list LIST قائمة بعناوين URLs الجافاسكريبت
-u URL, --url URL عنوان URL واحد
-t THREADS, --threads THREADS
عدد الخيوط المتزامنة للاستخدام (الافتراضي 5)
-o OUTPUT_DIR, --output directory-name OUTPUT_DIR
تخزين نص رد URL في دليل لمزيد من التحليل
-s STATUS_CODE_FILE, --store-status-code STATUS_CODE_FILE
تخزين رمز الحالة في ملف
-b BRUTE, --brute BRUTE
القوة العمياء لعنوان URL باستخدام كلمة FUZZ (--wordlist يجب استخدامه مع هذا أيضًا)
-w WORDLIST, --wordlist WORDLIST
قائمة كلمات للقوة العمياء لعنوان URL
-v, --verbose وضع المفصل (يعرض جميع الطلبات التي يتم إرسالها)
-c CRAWL_OUTPUT, --crawl-output CRAWL_OUTPUT
دليل الإخراج لتخزين النتائج المزحوفة
-d DELAY, --delay DELAY
التأخير في الطلبات (بالثواني)
--timeout TIMEOUT أقصى وقت للانتظار قبل انتهاء مهلة الاتصال (بالثواني)
--headers HEADERS إضافة رؤوس مخصصة (يجب تمريرها كـ {'Token': 'YOUR-TOKEN-HERE'}) --> تنسيق قاموس
--cookies COOKIES إضافة ملفات تعريف الارتباط (يجب تمريرها كـ {'Cookie': 'YOUR-COOKIE-HERE'}) --> تنسيق قاموس
--only-success طباعة الردود ذات رمز الحالة 2XX فقط
--local LOCAL دليل يحتوي على ملفات ردود محلية للزحف إليها
--no-colors إزالة الألوان من الإخراج
--update-info التحقق من وجود إصدار أحدث، والتحديث إذا لزم الأمر
الاستخدام الكامل:
python3 sourcewolf.py -l domains -o output/ -c crawl_output
domains هي قائمة بعناوين URLs التي تريد الزحف إليها بالتنسيق التالي:
https://example.com/
https://exisiting.example.com/
https://exisiting.example.com/dashboard
https://example.com/hitme
output/ هو الدليل الذي سيتم تخزين ملفات النص الخاصة بالردود للملف المُدخل فيه.
يتم تخزينها بالتنسيق output/2XX, output/3XX, output/4XX, و output/5XX.
output/2XX يخزن ردود رمز الحالة 2XX، وهكذا!
crawl_output المحدد باستخدام العلم -c يُستخدم لتخزين الإخراج، داخل دليل يُنشئه SourceWolf عن طريق الزحف عبر ملفات ردود HTTP المخزنة داخل دليل output/ (حاليًا فقط نقاط النهاية)
يحتوي الدليل crawl_output/ على:
endpoints - جميع نقاط النهاية التي تم العثور عليها
jsvars - جميع متغيرات الجافاسكريبت
سيحتوي الدليل على المزيد من الملفات مع إضافة المزيد من الوحدات والميزات إلى SourceWolf.
(أو)
لعنوان URL واحد،
python3 sourcewolf.py -u example.com/api/endpoint -o output/ -c crawl_output
فقط العلم -l يُستبدل بـ -u، وكل شيء آخر يبقى كما هو.
python3 sourcewolf.py -b https://hackerone.com/FUZZ -w /path/to/wordlist -s status
العلم -w اختياري. إذا لم يُحدد، سيتم استخدام قائمة كلمات افتراضية تحتوي على 6124 كلمة.
يستبدل SourceWolf الكلمة المفتاحية FUZZ من قيمة -b بالكلمات من قائمة الكلمات، ويرسل الطلبات. يتيح لك ذلك القوة العمياء لقيم المعاملات أيضًا.
-s ستخزن الإخراج في ملف يسمى status
لم يتم تضمين لقطة شاشة لأن الإخراج يبدو مشابهًا لوضع
crawl response.
python3 sourcewolf -l domains -s live
يمكن أن يحتوي ملف domains على أي شيء مثل النطاقات الفرعية، نقاط النهاية، ملفات الجافاسكريبت.
العلم -s يكتب الرد إلى ملف live.
كلا وضعي القوة العمياء والفحص يطبعان جميع رموز الحالة باستثناء 404 افتراضيًا. يمكنك تخصيص هذا السلوك لطباعة ردود
2XXفقط باستخدام العلم--only-success
يستخدم SourceWolf أيضًا خيوط المعالجة المتعددة.
العدد الافتراضي للخيوط لجميع الأوضاع هو 5. يمكنك زيادة عدد الخيوط باستخدام العلم -t.
بالإضافة إلى الأوضاع الثلاثة المذكورة أعلاه، هناك خيار الزحف محليًا، بشرط أن تكون الردود متوفرة لديك محليًا، وتتبع اتفاقيات التسمية المتوافقة مع SourceWolf.
قم بتخزين جميع الردود في دليل، على سبيل المثال responses/
python3 sourcewolf.py --local responses/
سيقوم هذا بالزحف عبر الدليل المحلي، وإعطائك النتائج.
تعداد النطاقات الفرعية
|
|
SourceWolf
|
|
تصفية النطاقات الفرعية الحية
|
|
تخزين الردود والعثور على نقاط النهاية المخفية / القوة العمياء للدلائل
في هذه المرحلة، سيكون لديك الكثير من نقاط النهاية من الهدف، المستخرجة في الوقت الفعلي من صفحات الويب وقت إجراء المسح.
الغرض الأساسي من SourceWolf هو رؤية أوسع للزحف عبر الردود ليس فقط لاكتشاف نقاط النهاية المخفية، ولكن أيضًا لأتمتة جميع المهام التي تتم عن طريق البحث اليدوي في ملفات الردود.
أحد الأمثلة على ذلك هو البحث اليدوي عن أي مفاتيح مسربة في المصدر.
هذا الغرض الأساسي يفسر الطريقة المعيارية التي كُتبت بها الملفات.
من الممكن تحديث SourceWolf مباشرة من الطرفية، دون الحاجة إلى استنساخ المستودع مرة أخرى.
يتحقق SourceWolf من وجود تحديثات في كل مرة يتم تشغيله، ويُخطر المستخدم إذا كانت هناك أي تحديثات متاحة مع ملخص لها.
تشغيل
python3 sourcewolf.py --update-info
يوفر المزيد من التفاصيل حول التحديث
عندما تكون هناك تحديثات متاحة، يجب عليك نقل ملف update.py خارج دليل SourceWolf، وتشغيل
تحذير: هذا يحذف جميع الملفات والمجلدات داخل دليل SourceWolf الخاص بك
python3 update.py /path/to/SourceWolf
يقوم هذا بالفعل بإزالة الدليل، واستنساخ المستودع مرة أخرى.
حاليًا، يدعم SourceWolf فقط العثور على نقاط النهاية المخفية من المصدر، ولكن يمكنك توقع دمج ميزات أخرى في المستقبل.
أين يمكنك المساهمة؟
المساهمات مطلوبة بشكل أساسي لدمج المزيد من الوحدات مع SourceWolf، على الرغم من أنه لا تتردد في فتح طلب سحب (PR) حتى لو كان مجرد خطأ مطبعي.
قبل إرسال طلب سحب، تأكد من أنك على أحدث إصدار.
> افتح مشكلة أولاً إذا كنت ستضيف ميزة جديدة للتأكد من أنها مطلوبة! يجب ألا تضيع الوقت في محاولة برمجة ميزة جديدة غير مطلوبة.
لا تتردد في فتح أي مشكلات تواجهها.
تأكد من تضمين نظام التشغيل الخاص بك، والأمر الذي تم تشغيله، ولقطات الشاشة إذا أمكن عند فتح مشكلة، مما يسهل علي إعادة إنتاج المشكلة.
يمكنك أيضًا طلب ميزات جديدة، أو تحسين الميزات الحالية عن طريق فتح مشكلة.
للزحف عبر الملفات محليًا، يجب عليك اتباع بعض اتفاقيات التسمية. هذه الاتفاقيات موجودة ليتمكن SourceWolf من تحديد اسم المضيف مباشرة، وبالتالي تحليل جميع نقاط النهاية، بما في ذلك النسبية.
ضع في اعتبارك عنوان URL https://example.com/api/
example.com/apiexample.com@apiلذا يبدو الملف النهائي كـ [email protected]
الشعار من تصميم Murugan artworks
يستخدم SourceWolf ترخيص MIT