Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
of-CORS — أداة آلية لاكتشاف أخطاء تكوين CORS باستخدام نطاقات typosquatting وعمال خدمة المتصفح (service workers) لاستكشاف الشبكات الداخلية لأهداف bug bounty. | Kitploit
أدوات/GitHubGitHub/trufflesecurity/of-cors
الاستطلاعجمع المعلوماتالتصيد الاحتياليأمن الويبسوء التكوينالفريق الأحمر
GitHubtrufflesecurity/of-cors

of-CORS

أداة آلية لاكتشاف أخطاء تكوين CORS باستخدام نطاقات typosquatting وعمال خدمة المتصفح (service workers) لاستكشاف الشبكات الداخلية لأهداف bug bounty.

عرض المستودع
15417منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

of-CORS

of-CORS هي مجموعة أدوات من Truffle Security لتحديد واستغلال الأخطاء في تكوين CORS على الشبكات الداخلية لأهداف مكافآت الاختراق باستخدام التصيد الإملائي.

صورة صورة

يمكنك قراءة المزيد هنا https://trufflesecurity.com/blog/of-CORS

كيف يعمل؟؟

of-CORS هو تطبيق ويب بلغة Python3 مبني على Django و Django Rest Framework. بمجرد إعداده وتكوينه، سيقوم of-CORS تلقائيًا بتسجيل عمال خدمة المتصفح في متصفحات أي ضحايا يزورون التطبيق. يقوم هؤلاء العمال بإرسال طلبات HTTP إلى قائمة من النطاقات الداخلية المعدة مسبقًا بهدف اكتشاف أخطاء تكوين CORS على الشبكات الداخلية. يتم بعد ذلك إرسال نتائج هذه الطلبات (سواء كانت ناجحة أو غير ذلك) عبر API إلى مثيل of-CORS.

بمجرد تسجيل عامل خدمة في متصفح الضحية، يقوم حمولة JavaScript بإعادة توجيه المتصفح بعيدًا إلى الصفحة التي يعتقد of-CORS أنهم كانوا يحاولون الوصول إليها أصلاً.

يمكن عرض النتائج المجمعة لاحقًا في لوحة تحكم بسيطة متاحة في تطبيق of-CORS.

البدء

يمكن اتخاذ الخطوات التالية لإعداد of-CORS في نشرك الخاص.

نظرًا لتعقيد إعداد of-CORS (خاصة التعقيدات المتعلقة بـ SSL/TLS و DNS والسماح بالطلبات الجامدة لكليهما)، فإننا نستخدم اثنين من موفري السحابة (Heroku و Cloudflare) في بنية التطبيق و Terraform لأتمتة تكوينهما.

شراء النطاقات ذات الصلة

ابدأ بشراء نطاق من المرجح أن يصل إليه موظف داخلي في الشركة المستهدفة. نوصي بشراء نطاق طباعة خاطئة لنطاق داخلي. لقد وجدنا أن أخطاء النسخ واللصق هي نقطة بداية جيدة.

على سبيل المثال، إذا كانت الشركة التي تختبرها تستخدم uberinternal.com للنطاقات الداخلية، فقد ترغب في شراء berinternal.com لبدء تلقي حركة مرور المتصفح من الموظفين الداخليين.

صورة

الحصول على مفتاح API من Cloudflare

يستخدم of-CORS Cloudflare لاستقبال وتوجيه طلبات DNS الجامدة وكذلك لإنهاء اتصالات SSL/TLS.

ستحتاج إلى حساب Cloudflare نشط لتعمل DNS بشكل صحيح مع of-CORS. بمجرد أن يكون لديك حساب Cloudflare، ستحتاج إلى إنشاء مفتاح API (يمكن القيام بذلك في لوحة التحكم هنا).

يجب أن يتمتع مفتاح API بصلاحيات كافية لإضافة وحذف وتكوين المناطق وسجلات DNS. يمكن تحقيق ذلك عن طريق تحديد الأذونات التالية في صفحة إنشاء رمز API:

أذونات رمز Cloudflare API

بمجرد إنشاء رمز API بالصلاحيات الصحيحة، يمكنك المتابعة إلى الخطوة التالية.

الحصول على مفتاح API من Heroku

يستخدم of-CORS Heroku لنشر التطبيق واستضافته بسهولة.

ستحتاج إلى حساب Heroku نشط لتشغيل بنية تطبيق of-CORS. بمجرد أن يكون لديك حساب، ستحتاج إلى تثبيت أداة واجهة سطر الأوامر (CLI) الخاصة بـ Heroku. مع تثبيت CLI، يمكنك استخدامها لبدء جلسة CLI موثقة بالأمر التالي:

root@kitploit:~
heroku login

يمكنك بعد ذلك تأكيد نجاح المصادقة على CLI عن طريق تشغيل الأمر التالي:

root@kitploit:~
heroku whoami

مزيد من التوثيق حول ترخيص Heroku CLI للاستخدام مع Terraform يمكن العثور عليه هنا.

تكوين of-CORS للنشر

مع مفاتيح API اللازمة للبنية التحتية جاهزة الآن، يمكننا الانتقال إلى تكوين of-CORS للنشر. ألق نظرة على محتويات ملف التكوين YAML النموذجي التالي الذي يمكن العثور عليه في المستودع:

root@kitploit:~
terraform:
  # You must change this to a unique string that is a valid Heroku app name
  heroku_app_name: best-of-cors
  # Fill this out with your Cloudflare API token
  cloudflare_api_token: this-is-my-api-token

hosts:
  # This can be an arbitrary string, but must be unique as a direct descendant of hosts
  testing:
    host_domain: 127.0.0.1:8080
    redirect_domain: google.com
    targets:
      - enable-cors.org
      - example.com

ستحتاج إلى إنشاء ملف تكوين YAML جديد بهذا التنسيق للنشر.

ضمن قسم terraform، ستحتاج إلى تعيين heroku_app_name إلى اسم تطبيق متوافق مع Heroku فريد لحسابك. ستحتاج أيضًا إلى إضافة مفتاح Cloudflare API الذي أنشأته في القسم أعلاه ضمن توجيه cloudflare_api_token.

قسم hosts هو المكان الذي نحدد فيه النطاقات التي نتوقع أن يستقبلها of-CORS حركة المرور عبرها وماذا نفعل عندما يأتي زوار الويب. لنفترض أن لدينا شركة نستهدفها ونعلم أن لديها نطاقين داخليين (myinternalcorp1.com و myinternalcorp2.com). قمنا بشراء النطاق yinternalcorp1.com متوقعين أن يزوره الموظفون عن طريق الخطأ. في هذه الحالة نود تكوين hosts على النحو التالي:

root@kitploit:~
hosts:
  testing_1:
    host_domain: yinternalcorp1.com
    redirect_domain: myinternalcorp1.com
    targets:
      - myinternalcorp1.com
      - myinternalcorp2.com

host_domain هنا هو النطاق الذي تتوقع استقبال حركة المرور عليه (أي النطاق الذي تم شراؤه). يحدد redirect_domain النطاق الذي يجب إعادة توجيه الضحايا إليه بمجرد إطلاق الحمولة. يحدد targets النطاقات التي يجب إطلاق الحمولات ضدها عندما يزور الضحية of-CORS.

لنفترض أننا اشترينا أيضًا yinternalcorp2.com ونريد تكوين of-CORS لإطلاق هجمات عند زيارته. يمكن بعد ذلك تحديث قسم hosts على النحو التالي:

root@kitploit:~
hosts:
  testing_1:
    host_domain: yinternalcorp1.com
    redirect_domain: myinternalcorp1.com
    targets:
      - myinternalcorp1.com
      - myinternalcorp2.com
  testing_2:
    host_domain: yinternalcorp2.com
    redirect_domain: myinternalcorp2.com
    targets:
      - myinternalcorp1.com
      - myinternalcorp2.com

الآن إذا زار ضحية عن طريق الخطأ yinternalcorp1.com أو yinternalcorp2.com، سيتم إطلاق الحمولات لتعداد أخطاء تكوين CORS على myinternalcorp1.com و myinternalcorp2.com وسيتم إعادة توجيه متصفح الضحية لاحقًا إلى النطاق الصحيح.

إعداد Docker

لن تحتاج إلى تثبيت Terraform أو Heroku أو Python مع خيار Docker. فقط قم بتشغيل هذا الأمر مع المسار الصحيح لملف yaml الخاص بك:

root@kitploit:~
docker run -v $PWD/config.yml:/config.yml -it --rm trufflesecurity/of-cors

الإعداد خارج Docker

تثبيت Terraform

يعتمد نشر of-CORS على Terraform. يمكنك اتباع التعليمات لتثبيت Terraform هنا. بمجرد التثبيت، يجب أن يكون الثنائي terraform متاحًا في PATH للنظام.

تثبيت Python3

يعتمد نشر of-CORS أيضًا على Python3. تأكد من تثبيته وتوافره في PATH للنظام.

نشر of-CORS

بعد الانتهاء من المصادقة على موفري السحابة لدينا ويكون ملف تكوين of-CORS جاهزًا، يمكننا الآن الانتقال إلى النشر.

أولاً سنحتاج إلى تهيئة Terraform. يجب تشغيل هذا الأمر من الدليل الجذر للكود المصدري:

root@kitploit:~
cd terraform && terraform init && cd ../

لنفترض أن ملف التكوين الخاص بنا موجود في /tmp/of_cors_config.yml. سنقوم بعد ذلك بتشغيل الأوامر التالية لتشغيل جميع بنى of-CORS التحتية (لاحظ أن هذا يفترض تشغيل الأوامر في bash). قد يستغرق تشغيل هذا الأمر من 5 إلى 10 دقائق، لذا يرجى التحلي بالصبر!

يرجى أيضًا ملاحظة أنه بالنسبة للتعدادات الكبيرة جدًا، غالبًا ما ينفد الموارد من Heroku. هذه مشكلة معروفة، وسنكون سعداء بمساعدتك في إيجاد حل. قد تشمل الإصلاحات المستقبلية القدرة على رفع التعدادات بنفسك، أو زيادة حجم Dyno في Heroku، أو التبديل إلى Sublist3r أو أداة تعداد أخرى.

root@kitploit:~
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
CONFIG_FILE=/tmp/of_cors_config.yml make deploy_and_configure

يرجى الملاحظة - هناك حالة سباق يمكن أن تحدث عند تشغيل بنية Heroku التحتية والوصول الفوري إلى وحدة التحكم داخلها. إذا فشل تشغيل أمر make deploy_and_configure الأخير، يرجى الانتظار بضع دقائق ومحاولة تشغيله مرة أخرى.

بعد انتهاء أمر deploy_and_configure من التشغيل، سيكون لديك الآن...

  • سجلات DNS مهيأة في Cloudflare تشير إلى تطبيق Heroku الخاص بك
  • Heroku مهيأ لاستقبال حركة المرور من جميع السجلات الجامدة ذات الصلة
  • of-CORS مليء بنطاقات تكوين CORS الداخلية المحتملة

تفويض سلطة DNS

آخر شيء نحتاج إلى القيام به ليكون نشر of-CORS جاهزًا لاستقبال حركة المرور هو تكوين أسماء النطاقات التي اشتريتها لاستخدام Cloudflare كخوادم DNS الموثوقة. لدى Cloudflare دليل متعمق لفعل ذلك هنا.

التأكد من أن كل شيء تم إعداده بشكل صحيح

اتبع الخطوات التالية لتأكيد أن برنامجك يعمل بشكل صحيح. لأغراض هذا القسم، سنستخدم مثيل of-CORS الذي تم إعداده تحت النطاق hackersofhollywood.com.

أولاً، دعنا نتحقق من أن سجلات SOA الخاصة بنطاقنا تشير إلى Cloudflare:

root@kitploit:~
dig soa <domain>

كما هو موضح أدناه، تشير سجلات SOA لـ hackersofhollywood.com بشكل صحيح إلى خوادم أسماء Cloudflare:

سجلات SOA لـ Hackers Of Hollywood

ثم نراجع حساب Cloudflare لتأكيد أن سجلات DNS قد تم إعدادها لكل من hackersofhollywood.com و *.hackersofhollywood.com بمحتويات CNAME تشير إلى نطاقات Heroku. يتم ذلك من خلال واجهة الويب الخاصة بـ Cloudflare ضمن قسم DNS:

فحص DNS في Cloudflare

الخطوة التالية هي تأكيد أن Heroku مهيأ لاستقبال حركة المرور عبر هذين السجلين CNAME. يمكن القيام بذلك من خلال واجهة الويب الخاصة بـ Heroku ضمن Settings -> Domains:

فحص DNS في Heroku

بالتأكيد نرى اسمي نطاق مع أهداف DNS مناسبة مهيأة في Heroku وهذه الأهداف تنعكس بشكل صحيح في سجلات CNAME الخاصة بـ Cloudflare.

يمكننا بعد ذلك تشغيل الأمر التالي لفتح جلسة متصفح موثقة إلى صفحة عارض النتائج الخاصة بـ of-CORS:

root@kitploit:~
CONFIG_FILE=<path_to_config_file> make open_heroku_console

يجب أن يؤدي هذا إلى ظهور لوحة تحكم فارغة في متصفحك:

لوحة تحكم of-CORS فارغة

أخيرًا، يمكننا اختبار أن استقصاء أخطاء تكوين CORS يتم إطلاقه بنجاح. افتح متصفحًا على النطاق الأساسي لأحد تكويناتك (في مثالنا، https://hackersofhollywood.com) وتأكد من إعادة توجيه الصفحة بعد بضع ثوانٍ:

صفحة التحميل

الآن عد إلى صفحة لوحة التحكم وقم بتغيير عامل تصفية Success لتصفية Unknown واضغط على زر Submit Query. يجب أن ترى الآن مجموعة من النتائج معبأة:

لوحة تحكم كاملة

تم نصب الفخ! الآن فقط استرخ وانتظر حتى يصادف ضحاياك نطاقك الصغير اللذيذ.

عرض النتائج

يمكن استخدام الأمر التالي لعرض والاستعلام عن جميع النتائج في جلسة متصفح موثقة:

root@kitploit:~
CONFIG_FILE=<path_to_config_file> make open_heroku_console

إضافة وإزالة الأهداف

تم تصميم ملف تكوين of-CORS لدعم إضافة وإزالة النطاقات التي يتم إطلاق الهجمات ضدها بمرونة. ببساطة قم بتحديث محتويات قسم hosts في ملف التكوين الخاص بك وأعد تشغيل البرنامج النصي للتزويد:

root@kitploit:~
source venv/bin/activate
CONFIG_FILE=/tmp/of_cors_config.yml make deploy_and_configure
تنزيل الأداة