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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
corsair_scan — ماسح ضوئي آلي لتكوينات CORS الخاطئة يختبر حقن رأس Origin، وانعكاس حرف البدل، وتسرب بيانات الاعتماد عبر تطبيقات الويب وواجهات برمجة التطبيقات. | Kitploit
أدوات/GitHubGitHub/santandersecurityresearch/
corsair_scan
ماسحات الثغرات الأمنيةاختبار أمان APIأمن الويبسوء التكوين
GitHubsantandersecurityresearch/corsair_scan

corsair_scan

ماسح ضوئي آلي لتكوينات CORS الخاطئة يختبر حقن رأس Origin، وانعكاس حرف البدل، وتسرب بيانات الاعتماد عبر تطبيقات الويب وواجهات برمجة التطبيقات.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

GitHub release Github all releases HitCount Total alerts Language grade: Python MIT license

corsair_scan

مرحبًا بك في Corsair_scan

Corsair_scan هي أداة أمنية لاختبار الأخطاء في تكوين مشاركة الموارد عبر الأصل (CORS). CORS هي آلية تسمح بطلب موارد مقيدة على صفحة ويب من نطاق آخر خارج النطاق الذي تم تقديم المورد الأول منه. إذا لم يتم تكوين ذلك بشكل صحيح، يمكن للنطاقات غير المصرح لها الوصول إلى تلك الموارد.

ما هو CORS؟

CORS هي آلية تعتمد على رؤوس HTTP تسمح للخادم بتحديد أي أصول أخرى (نطاق، مخطط، أو منفذ) غير أصله يُسمح للمتصفح بتحميل الموارد منها. تعمل عن طريق إضافة رؤوس HTTP جديدة تسمح للخوادم بوصف الأصول المسموح لها بقراءة تلك المعلومات من متصفح الويب.

يعتمد CORS أيضًا على آلية يقوم من خلالها المتصفح بإجراء طلب "استباقي" إلى الخادم الذي يستضيف المورد عبر الأصل، للتحقق من أن الخادم سيسمح بالطلب الفعلي. في هذا الطلب الاستباقي، يرسل المتصفح رؤوسًا تشير إلى طريقة HTTP والرؤوس التي سيتم استخدامها في الطلب الفعلي.

المشكلة الأمنية الأكثر شيوعًا وإشكالية عند تنفيذ CORS هي الفشل في التحقق/إدراج الطالبين في القائمة البيضاء. غالبًا ما نرى قيمة Access-Control-Allow-Origin مضبوطة على '*'.

لسوء الحظ، هذا هو الإعداد الافتراضي، وبالتالي يسمح لأي نطاق على الويب بالوصول إلى موارد هذا الموقع.

وفقًا لمعيار التحقق من أمان التطبيقات (ASVS) الخاص بـ OWASP، ينص الشرط 14.5.3 على:

Verify that the Cross-Origin Resource Sharing (CORS) Access-Control-Allow-Origin header uses a strict allow list of trusted domains and subdomains to match against and does not support the "null" origin.

كيف يعمل corsair_scan؟

يعمل corsair_scan عن طريق إعادة إرسال طلب (أو قائمة من الطلبات) يتم استلامها كمعامل، ثم حقن قيمة في رأس Origin. اعتمادًا على محتوى رأس Access-Control-Allow-Origin في الرد على هذا الطلب، يمكننا تأكيد ما إذا كان تكوين CORS صحيحًا أم لا. هناك ثلاثة سيناريوهات تشير إلى أن CORS قد تم تكوينه بشكل خاطئ:

  • الأصل المزيف المرسل في الطلب ينعكس في Access-Control-Allow-Origin
  • قيمة Access-Control-Allow-Origin هي *
  • قيمة Access-Control-Allow-Origin هي null

إذا تم اكتشاف أن CORS قد تم تكوينه بشكل خاطئ، فإننا نتحقق مما إذا كان الرد يحتوي على الرأس Access-Control-Allow-Credentials، مما يعني أن الخادم يسمح بتضمين بيانات الاعتماد في الطلبات عبر الأصل.

غالبًا ما تستخدم تكوينات CORS أحرف البدل، على سبيل المثال قبول أي شيء تحت * example.com *. وهذا يعني أن النطاق domain.com.evil.com سيتم قبوله لأنه يطابق التعبير النمطي المحدد. ولمحاولة مكافحة ذلك، يختبر corsair_scan أربعة سيناريوهات:

  • حقن نطاق مزيف: نقوم بتعيين رأس origin إلى https://scarymonster.com، حتى لو لم يكن الطلب الأصلي يحتوي على رأس origin
  • إذا كان الطلب الأصلي يحتوي على رأس origin (للتوضيح، لنفترض أنه https://example.com):
    • حقن ما قبل النطاق: نقوم بربط النطاق المزيف بالنطاق الأصلي على اليسار. في مثالنا، سيتم تعيين origin إلى https://scarymonsterexample.com
    • حقن ما بعد النطاق: عكس ما قبل النطاق، مجرد ربط على اليمين. سيكون origin https://example.com.scarymonster.com
    • حقن نطاق فرعي: أحيانًا تقوم قائمة CORS البيضاء بإدراج جميع النطاقات الفرعية تحت نطاق معين. على الرغم من أنها ليست مشكلة في حد ذاتها، إلا أنه إذا كان أحد النطاقات الفرعية عرضة لهجوم XSS، فقد تكون مشكلة خطيرة. سيكون origin في هذا السيناريو https://scarymonster.example.com

كيف أقوم بتثبيته؟

تم تطوير هذا المشروع باستخدام Python 3.9، ولكن يجب أن يعمل مع أي إصدار من Python 3.x. أفضل طريقة لتثبيته هي باستخدام pip.

pip3 install corsair_scan --user

كيف أستخدمه؟

يمكن استخدام Corsair كوحدة Python أو كواجهة سطر أوامر (CLI).

وحدة Python

الطريقة التي تقوم بفحص CORS هي corsair_scan. إليك تعريفها:

corsair_scan

تستقبل قائمة من الطلبات ومعلمة لتمكين/تعطيل فحص الشهادة في الطلب.

المدخلات:

  • data [List]: قائمة من الطلبات. كل طلب هو قاموس يحتوي على البيانات ذات الصلة بالطلب:
    • url_data [Dict]: هذا قاموس يحتوي على جميع البيانات ذات الصلة بالطلب:
      • url [String]: عنوان URL الذي يتم إرسال الطلب إليه
      • verb [String]: الفعل المستخدم في الطلب (get, post, patch, delete, options...)
      • params [String]: النص المرسل في الطلب (إن وجد)
      • headers [Dict]: هذا قاموس يحتوي على جميع الرؤوس المضمنة في الطلب
  • verify [Boolean] [Default: True] : يرسل هذه القيمة إلى corsair_scan_single_url لكل طلب

المخرجات:

  • final_report [List]: يحتوي على التقرير الكامل للاختبار الذي تم إجراؤه. إذا تم تعيين filter على true، فإنه يضيف أيضًا ملخصًا للاختبار إلى التقرير.
    • report [List]: قائمة من التقارير الفردية المفصلة مع الاختبار الذي تم إجراؤه
    • summary [Dict] : ملخص للمشكلات التي تم اكتشافها في الفحص

مثال

root@kitploit:~
import corsair_scan.corsair_scan as corsair
url_data = {}
data = []
verb =  'GET'
url = 'https://example.com/'
params = 'user=user1&password=1234'
headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
           'Accept-Language': 'en-GB,en;q=0.5', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1',
           'Origin': 'https://example.com',
           'Host': 'example.com'}

url_data['verb'] = verb
url_data['url'] = url
url_data['params'] = params
url_data['headers'] = headers
data.append(url_data)

print (corsair.corsair_scan(data, verify=True))

الرد:

root@kitploit:~
{'report': [{'fake_origin': {'Access-Control-Allow-Origin': 'https://scarymonster.com',
                             'Origin': 'https://scarymonster.com',
                             'credentials': True,
                             'error': False,
                             'misconfigured': True,
                             'status_code': 200},
             'post-domain': {'Access-Control-Allow-Origin': 'https://example.com.scarymonster.com',
                             'Origin': 'https://example.com.scarymonster.com',
                             'credentials': True,
                             'error': False,
                             'misconfigured': True,
                             'status_code': 200},
             'pre-domain': {'Access-Control-Allow-Origin': 'https://scarymonsterexample.com',
                            'Origin': ' https://scarymonsterexample.com',
                            'credentials': True,
                            'error': False,
                            'misconfigured': True,
                            'status_code': 200},
             'sub-domain': {'Access-Control-Allow-Origin': 'https://scarymonster.example.com',
                            'Origin': 'https://scarymonster.example.com',
                            'credentials': True,
                            'error': False,
                            'misconfigured': True,
                            'status_code': 200},
             'url': 'https://example.com/',
             'verb': 'GET'}],
 'summary': {'error': [], 'misconfigured': [{'credentials': True,
                    'misconfigured_test': ['fake_origin',
                                           'sub-domain',
                                           'pre-domain',
                                           'post-domain'],
                    'status_code': 200,
                    'url': 'https://domain.com',
                    'verb': 'GET'}]}}

واجهة سطر الأوامر (CLI)

كجزء من تثبيت حزمة pip، يتم تثبيت واجهة سطر الأوامر. صيغة التنفيذ هي كالتالي:

corsair FILE [-nv/--noverify][-r/--report]

تحتاج واجهة سطر الأوامر إلى ملف JSON يحتوي على قائمة من الطلبات لإجراء الفحص. يتم توفير ملف مثال كجزء من الاختبارات:

root@kitploit:~
[{
  "verb": "GET",
  "url": "https://example.com/",
  "params": "user=user1&password=1234",
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Accept-Language": "en-GB,en;q=0.5",
    "Connection": "keep-alive",
    "Upgrade-Insecure-Requests": "1",
    "Origin": "https://example.com",
    "Host": "example.com"
  }
}]

هناك أيضًا معاملين اختياريين:

  • -nv / --noverify: لتخطي التحقق من الشهادة، إذا كنت تختبر موقعًا بشهادة ذاتية التوقيع
  • -r / --report: يحفظ التقرير كملف JSON

مثال

تقرير CLI

خريطة الطريق

  • إصدار corsair_scan كأداة CLI ✅
  • قراءة بيانات URL من ملف نصي ✅
  • تحسين تنسيق التقارير

من الذي يقف وراءه؟

تم تطوير Corsair_scan بواسطة فريق هندسة الأمن في Santander UK وهم:

  • David Albone
  • Javier Domínguez Ruiz
  • Fernando Cabrerizo
  • Jonathan Strong
  • James Howieson
تنزيل الأداة