مقال: شرح ثغرة تزوير المحتوى فى تطبيقات الويب content spoofing
السلام عليكم
اليوم سوف نتناول ثغرة content spoofing لتوضيح الثغرة واسباب حدوثها ومعرفة خطورتها وكيفية اكتشفاها وطريقة استغلالها والحماية منها سواء من جانب صاحب الموقع او من جانب المستخدم العادي.
ثغرة content spoofing :
هى ثغرة تمكنك من اضافة او تعديل المحتوى لموقع ما وبالتالى عرض معلومات مزورة للمستخدم تكون لصالح المهاجم وتضر بسمعة الموقع او الشركة . يطلق ايضا على هذه الثغرة اسم اخر وهو “حقن المحتوى” content injection
شرح الثغرة :
لنفترض ان موقع isecur1ty.com يعرض صفحة لتقييم العملاء للدورات المدفوعة من خلال الرابط التالى :
http://isecur1ty.com/courses.php?id=12&rev=buy%20now%20to%20enjoy%20the%20best%20course%20ever
id=12 هذا البارمتر الخاص برقم الكورس
rev=buy%20now%20to%20enjoy%20the%20best%20course%20ever
البارمتر rev هو الخاص بعرض رأى العملاء فى هذا الكورس .
كما ترى يوصى العملاء بشراء هذا الكورس لأنه الأفضل فى هذا المجال !!
ماذا لو كان البارمتر rev يسمح لنا بالتعديل على قيمته ؟ ربما يكون الموقع مصاب بثغرة content spoofing!!
نقوم بتغيير قيمة البارمتر rev ليصبح :
rev=it is not good so don’t buy it
يعنى ان العملاء ترى ان هذا الكورس ليس جيدا وتوصى العملاء بعدم شراءه
ويكون الرابط بهذا الشكل :
http://isecur1ty.com/courses.php?id=12&rev=it%20is%20not%20good%20so%20don%27t%20buy%20it
الأن لنرى هل سيتم حقن الجملة فى محتوى الموقع ؟
تم تزوير المحتوى بنجاح وتأكدنا ان الموقع مصاب بالثغرة
ماذا لو ارسلنا هذا الرابط الى كل زوار الموقع ؟ بالطبع سيمثل خسارة اقتصادية كبيرة للشركة فنحن زورنا رأى العملاء بخصوص هذا الكورس !!
خطورتها :
لا يمكن وصف هذه الثغرة بأنها من الثغرات الخطيرة فهى ثغرة قليلة الخطورة تمكنك من حقن جمل نصية فى الموقع وعرضها لزوار الموقع . تزداد خطورة هذه الثغرة على حسب مكان اكتشفاها فى الموقع المصاب وايضا عندما يتم دمجها مع ثغرة اخرى .
احيانا يشكل حقن النصوص خطر كبير وخاصة فى مواقع التسوق حيث يستطيع المهاجم من حقن معلومات خاطئة عن المنتجات او توصيات بعدم شراء هذا المنتج مما يؤدى الى خسارة اقتصادية للموقع.
ايضا تكون هذه الثغرة خطيرة عندما تستخدم مع الهندسة الإجتماعية حيث يستطيع المهاجم التلاعب بالضحية الذى يثق كثيرا فى الموقع المصاب حيب يستطيع المهاجم حقن رابط خبيث فى الموقع المصاب وبالتالى اختراق حساب الضحية .تخيل القيام بهذا الهجوم ضد عدد كبير من مستخدمين الموقع عن طريق ارسال الرابط المصاب الى بريد الضحية . بالطبع لن يتردد الضحية فى الدخول على الرابط لأن مصدر الرابط هو الموقع الحقيقى والذى يضع الضحية ثقته فيه !!
احد استخدامات هذه الثغرة هو الإستعراض بأختراق نصى للموقع مثلا : website hacked by mahmoud
اسباب حدوثها :
تحدث هذه الثغرة عندما يسمح الموقع المصاب للمستخدم بتغيير قيمة البارمتر ولا يقوم الموقع بالتحقق من هذه القيمة والتى يجعلها تظهر فى محتوى الموقع .
يجب على الموقع ان يقوم بفلترة كل المدخلات ولا يثق ابدا فى المستخدم لأن هذا المستخدم قد يكون هو المهاجم!!
كيفية اكتشاف الثغرة :
طريقة 1 :
- اجمع كل البارمترز الموجودة فى الروابط للموقع المستهدف
- قم بالتعديل على قيمة البارمتر بإضافة نصوص مثلا : “isecur1ty “
- لو ظهرت النصوص “isecur1ty ” فى محتوى الموقع اذن فالموقع مصاب بثغرة content spoofing
طريقة 2 :
- ابحث عن اى بارمتر قيمته تظهر بشكل مباشر فى محتوى الموقع كما بالصورة التالية
قيمة البارمتر user تظهر بشكل مباشر فى محتوى الصفحة اذن هناك امكانية للتعديل على البارمتر وبالتالى محتوى الصفحة
2. قم بالتعديل على قيمة البارمتر مثل الطريقة الأولى ولاحظ ظهور النصوص فى محتوى الموقع
كيفية الإستغلال :
عن طريق اضافة محتوى مزيف وارسال الرابط الى عدد كبير من الضحايا .محتوى مزيف مثل :
web site down ! come back later
وبالتالى سيخسر الموقع الكثير من الزيارات
او مثلا محتوى اخر اكثر خطرا على المستخدم عن طريق اضافة رابط خبيث فى محتوى الموقع مثل :
web site is transferring to new domain www.attacker.com
وسيدخل المستخدم بحسن نية اللى الرابط الخبيث مما يتيح للمهاجم سرقة الحساب
تطبيق الثغرة على موقع مشهور :
سنطبق هذه الثغرة على الموقع الروسى الشهير yandex
نذهب الى الرابط المصاب : لاحظ الصورة التالية
البارمتر المصاب هو ReleasesType=
والذى يسمح للمهاجم بالتعديل على قيمته دون التحقق من هذه القيمة !
نقوم بالتعديل على البارمتر والنتيجة هى :
الحماية من الثغرة :
لحماية الموقع :
- التحقق من كل المدخلات
- فلترة اى قيمة تأتى من جانب المستخدم
- الإعتماد على POST parameter كلما يكون ذلك متاحا
لحماية المستخدم :
- لا تضغط على الروابط التى تأتى من ايميلات مجهولة او من خلال مواقع التواصل الإجتماعى
- دائما تحقق من مصدر الرابط وانها قادم من الموقع الصحيح مثلا site.com وليس sitee.com او s1te.com
- تحقق من الرابط بشكل كلى او استخدم اضافات تتحقق من الروابط بشكل اوتوماتيكى !
الباب مفتوح لكل الإستفسارات !!
شكرأ على شرح الوافي عاشت الايادي
انتظر المزيد
بصراحة يا أخي رضا محمود أنت الذي تعطي المقالات الجيدة و المفيدة في هذا الموقع فأتمنى لك طول العمر و النجاح في في شؤونك ……إن شاء الله أنت و المتطوعين الاخرين منهم محمد عسكر و..و….على مجهوداتكم لتطويع الشعوب العربية على فهم هذه المناهج الإستثنائية في العالم العربي ………………أخوك في الله” ” من المغرب
شكرا لك على هذا الكلام الرائع واهلا بكل شعب المغرب
راااااااااااائع 😀 , شرح رائع شكرا على مجهودك 🙂
ا
شكرا لك
جميل جداً شرح اكثر من رائع .
شكرا لك
شكر ليك على المقال بجد شرح ممتاز (y) فى انتظار المزيد 🙂
السلام عليكم اخي الكريم رضا بارك الله فيك على المقال و لكن لدي بعض التعقيب و الذي هو في معرفة ما اذا كان الموقع مصاب بالثغرة او لا
هو ظهور الباراميتر في الصفحة لا يعني انه مصاب و ذلك لانه قد يستعمل مبرمج بارامتر مؤقت ثم يمرره الى صفحة اخرى ليعرضه في محتواها و لكن يمكن معرفة ما اذا كان الموقع مصاب بثغرة او لا ببعض من التفكير و الخبرة كان تجد مثلا يطلب رايك في منتوج معين و بعد ادخال رايك يتم تحويله الى صفحة اخرى من خلال الGET لعرضه فهنا نعرف ان التعليق يتم تخزينه في قاعدة البيانات فيمكننا ان نستغل الثغرة بتغيير قيمة البارامتر فيتم تخزين القيمة التي ادخلناها في قاعدة البيانات . فتصبح القيمة اصلية في الموقع بدل ان تكون مؤقتة
اتمنى انك فهمت قصدي
حلمي ان اصبح هاكر محترف