
ماسح ضوئي بسيط لتكوين CORS الخاطئ
استنادًا إلى بحث James Kettle
CORStest هي أداة سريعة وغير متقنة بلغة Python 3 لاكتشاف سوء تهيئة مشاركة الموارد عبر الأصل (CORS). تأخذ ملفًا نصيًا كمدخل قد يحتوي على قائمة بأسماء النطاقات أو عناوين URL. حاليًا، يتم اكتشاف الثغرات المحتملة التالية عن طريق إرسال رأس طلب Origin معين والتحقق من رأس الاستجابة Access-Control-Allow-Origin:
null عبر iframe محصورلاحظ أن هذه الثغرات/سوء التهيئة تعتمد على السياق. في معظم السيناريوهات، لا يمكن للمهاجم استغلالها إلا إذا كان الرأس Access-Control-Allow-Credentials موجودًا (انظر العلم -q).
usage: corstest.py [arguments] infile
positional arguments:
infile File with domain or URL list
optional arguments:
-h, --help show this help message and exit
-c name=value Send cookie with all requests
-p processes multiprocessing (default: 32)
-s always force ssl/tls requests
-q quiet, allow-credentials only
-v produce a more verbose output
استخدام CORStest لاكتشاف سوء التهيئة لأفضل 750 موقعًا من Alexa (مع Access-Control-Allow-Credentials):

تشغيل هذا الفحص على أفضل مليون موقع من Alexa يكشف النتائج التالية:

لاحظ أن الأرقام المطلقة منخفضة جدًا، لأن 3٪ فقط من المواقع المختبرة البالغ عددها 1,000,000 كانت لديها CORS مفعلة على صفحتها الرئيسية ويمكن تحليلها بحثًا عن سوء التهيئة. استغرق هذا الاختبار حوالي 14 ساعة على خط إنترنت لائق (DSL). إذا كان لديك اتصال إنترنت سريع، حاول زيادة عدد العمليات المتوازية إلى -p50 أو أكثر.
اقرأ المزيد عن الخلفية التقنية لسوء تهيئة CORS في هذه المقالة الرائعة أو شاهد هذه المحاضرة. تقييم واسع النطاق لسوء تهيئة CORS باستخدام CORStest موثق هنا.