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

مقال : ثغرة CSRF في Flickr لتغير تفاصيل الصور

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


في عام 2014 وحين كنت أبحث عن برامج الجوائز صادفني أن شركة ياهو (Yahoo) تضع موقع Flicker وتطبيقاته ضمن برامج الجوائز الخاصة بهم حيث يُعتبر Flickr من أشهر مواقع مشاركة الصور في العالم لذا تحدي نفسي لابحث فيه على ثغرات فلا شيء هو محمي 100% ومع خبراتي القليلة ببرامج للجوائز سابقاً

flickr-icon1-300x300

لذا بدات التحري حول الموقع وجدته يستخدم PHP ويملك 87 مليون مستخدم ، انا أحب أن أبحث عن الأمر التي يكون الموقع مصمم من اجلها لانها تكون مهمة ومهمة الموقع مرتكزة عليها في حال Flickr  فهي الصور حيث بدأت بالبحث عن XSS ,CSRF,permission  bypass .

بعد البحث وجدت ان الحماية المطبقة لموقع Flickr  لCSRF هي متغير مميز يدخل في كل طلب عن طريق الصفحة وليس في الHTTP HEADER وكان اسمه magic_cookie حيث في كل طلب يتم ادخاله مع الطلب ويتاكد الموقع من صحته من خلال مطابقة الmagic_cookie الموجود في الطلب والصفحة مع الموجود في السيرفر وبهذا يمنع ادخال الطلبات من صفحات اخرى

هذه هي الميكانيكية المستخدمة في اغلب المواقع حيث يتم توليد رقم عشوائي في الصفحة الذي يوجد بها FORMS ويتم ادخاله في الطلبات للتاكد من ان الطلب الخاص بالفورم ياتي من نفس الصفحة .

 

وبذلك بدات البحث في الطلبات وحاولت ان اكتشف خلل في (التعديل , الحذف ,الرفع, ..الخ ).

 

الخطوات

اول ما قمت به هو رفع صورة عن طريق الموقع الاساسي (ليس النسخة الحديثة).

تم رفع الصورة وبعدها يطلب منك وضع عنوان او اي تفاصيل عن طريق صفحة اخرى (تم تغيرها) .

 

وبعد ان تضع عنوان وتفاصيل سوف يكون الطلب كالاتي :

Host: www.flickr.com
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0) Gecko/20100101 Firefox/31.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
Cookie: Long one !!!
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 208


edit_done=1&upload_ids=14401638983&just_photo_ids=&set_id=
&magic_cookie=32e285e98bbef3aa6afd8c879891c01b&title_14401638983=XSRF+bug+POC1
&description_14401638983=XSRF+bug+POC1&tags_14401638983=XSRF+POC1
&tags_14401638983=XSRF+POC2&Submit=SAVE

لاحظت من الطلب ان “magic_cookie” عبارة عن MD5 مميز .

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

 

كنت اقوم بادخال قيم جديدة للمتغيرات كاسم الصورة والتفاصيل واقوم بتغير ال”magic_cookie” في الطلب اذا تم الطلب وتم تغير المحتوى الخاص بالصورة فان الثغرة نجحت اما اذا لم يتم تغير شيء يعني ان الصفحة غير مصابة

كل ما قمت به كان في ظرق ربع ساعة فقد مسحت magic_cookie في اول طلب لي لكن الوضع لم يفلح في تغير المحتوى ولكن انتبهت اني وضعت قيم id ليست لصورة املكها لذلك عدت وسمحت قيمة magic_cookie وتركتها فارغة وارسلت الطلب وتغير محتوى الصورة !!!!!

 

لذلك قمت بعمل سكربت بسيط ك POC لاقدمه لشركة ياهو ..

 

0c3f474c6cf706

 

ستحتاج الى تغير قيم upload_ids&tags_{id here}&title_{id here}& description_{id here})

 

بحيث بعد كل شارحة سفلى ضع الايدي الخاص بالصورة والذي يمكن الحصول عليه من الرابط وراسل الصفحة هذه الى الضحية بمجرد ضغط الزر سوف يتم تغير محتوى الصورة الخاصة به بدون ان يتدخل .

 

بعدها قمت بالابلاغ بسرعة لاني ضننت انها ستكون مكررة كالعادة لكن بعد يومين استلمت رد من شركة ياهو تخبرني انهم سيصلحون الثغرة في اقرب وقت حيث تم إصلاح الثغرة بعد 12 ساعة من الرسالة الخاصة بياهو وبعدها انتظرت اكثر من شهرين لاستلام الجائزة وكانت مخيبة للامل .

اتصلت بفريق ياهو لانشر الكتابة الخاصة بالثغرة قبل الجائزة ووافق الفريق .

ونشرتها في المدونة الخاصة بي (هنا) وتم كتابة مقال عنها في موقع the hacker news

لاي استفسار اترك تعليق او تواصل معي وأتمنى أن يكون المقال قد نال إعجابكم .

 

عبدالله حسام

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

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

‫2 تعليقات

اترك تعليقاً

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

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