مقال: حين يفشل CloudFlare بحماية مُستخدميه
منذ فترة ليست بطويلة أستطعت اكتشاف ثغرة XSS تصيب خدمة تقدمه مؤسسة Cloudflare الذي تملك خدمة الجدار الناري العالمية ، حيث يُعتبر Cloudflare واحد من أهم المنُتجات بهذا المجال ومن الأكثر إنتشاراً ، وسبق وأن ذكرنا موضوع تحدثنا به عن الخدمة بشكل مُفصل أكثر.
بداية القصة :
في عام 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
نلاحظ ان السيرفر باللون الاحمر هو تابع لكلاود فلير بالرغم من ان الموقع ليس له اي علاقة بشركة 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 تعمل في متصفحات ولا تعمل في متصفحات اخرى
والسبب انه لكل متصفح نواة وبرمجة معينة تقبل بعض الامور وفي اخرى لا تقبلها .
وسبب عمل ثغرة الكلاود فلير هو انه الرد كان بصيغة Content–Type: multipart/mixed وهذا يعني انه متعدد او مختلط لذلك الفايرفوكس يرفض عرض ملفات او صفحات كهذه بينما IE يشلغها كصفحات HTML وبذلك عملت معنا !
الان لدينا مشكلة ال(PE-Token) من اين نجلبه بعد البحث وجدت ان صفحة الخطأ 405
لو فتحت النص الاصلي او السورس كود لهذه الصفحة ستجد
وبمطابقة ال PE-Token وجدته يساوي قيمة الpetok الموجود في صفحة الخطأ
السيناريو ان يقوم الهكر بارسال صفحة ترسل طلب للموقع المراد اختراقه لسحب الرقم وإعادة ارسال طلب اخر لكن هذه في حالة ضعف في SOP يُمكن مراجعته لاحقاً ، لذلك إستطعت ان أقوم بإستغلال الثغرة في مواقع كثيرة وهذه بعض منها :
أخيراً تم ابلاغ شركة كلاودفلير وقد تم اغلاق التقرير بدون اصلاح ربما تم اصلاحه الأن !؟
نتمنى أن يكون المقال قد نال إعجابكم ، ونلتقي بمقالات أخرى بإذن الله.
الف شكر
…هذا رابط موقعي تكرموا بزيارتنا
http://www.4techin.blogspot.com