السلام عليكم ,,,,,
اهلاً وسهلاً بكم احبّتي اعضاء في دراسة ثغرة [ XSS ] !
[ اولاً المقدمة ]
ثغرة [ XSS ] هي اختصار لـ[ Cross site scripting ] وسبب عدم كتابتها بالاختصار الصحيح [ CSS ] لكي لا يحدث خلط مع لغة الـ[ CSS ] الانماط القياسية المعروفة [ Cascading Style Sheets ] , وبذلك تم تسميتها [ XSS ] !
المواقع اصبحت تحتاج الى طرق تفاعل مع المستخدم " الزائر " ومن اساليب التفاعل هو السماح له بادراج رد وتعليق اعجاب , اوحتى وان كان السكربت يطبع مايدخله الزائر كما تفعل الكثير من السكربتات الخاصة في البحث [ انت تبحث عن : ساحة التطوير ] ..
طباعة المخرجات دون الفلترة هو نقطة تكوّن ثغرات الـ[ XSS ] وذلك لان المستخدم يمكنه ادراج اكواد html , **** script والخ من ملحقات لغة html وينفّذ هذا المدخل في الصفحة , وهذا يعني تخطيه صلاحياته في الطباعه , وكما يعلم الجميع ان ثغرات [ XSS ] تعد من اكثر الثغرات انتشاراً والسبب هو ان المبرمج يحتاج الى حماية المخرجات والقيام بفلترتها . .
ثغرات [ XSS ] لها نوعين وهما /
اولاً / ثغرات XSS ثابته - مخزّنه [ Persistent - stored ] !
ثانياً / ثغرات XSS غير ثابته - غير مخزّنه [ Non persistent - Reflected ] !
ثغرات XSS الثابته هي اخطر من النوع الغير ثابت , وذلك لان ثغرات [ XSS ] الثابته , مايدخله الزائر ثابت بالصفحه , اي مايدخله مثلاً يخزّن بقاعدة بيانات السكربت , وبذلك عند دخول موضوع يحتوي على امكانية التفاعل بالردود , في حالة لم يكون السكربت محمي بالتأكيد اي شخص يقوم بالدخول الى الموضوع سيشاهد اعمال المخترق في الصفحة . .
بعكس ثغرات الـ[ XSS ] الغير ثابته , هي النوع الاكثر انتشاراً وليس "خطورة " وهي التي تقوم على اساس الادخال الخاص مثلاً , كما ذكرنا سابقاً عند البحث في المنتديات [ انت تبحث عن : طريقة اكتشاف xss ] هنا الحالة تسمى غير ثابته , وذلك لان ادخالك لن يخزّن في قاعدة بيانات الموقع اي في حالة الطلب يظهر لك لا اكثر ..
"وللمعلوميه " ثغرات [ XSS ] الثابته البعض يُطلق عليها [ HTML Injection ] لكي يوضّح انها ثغرة [ XSS ] مُخزّنه وخطيرة ولكن التسمية ليست صحيحه فعلياً لكي تخصص لنوع معيّن وذلك لان النوعين تقوم على اساس حقن الاكواد . .
خطورة الثغرة كبيرة جداً في النوع الثابت , وذلك لانه يمكن للمخترق اولاً اختراق متصفحي الموقع [ وهذا يعني القدرة على اختراق مُدير الموقع وبذلك اختراق السيرفر ] و كذلك تشويه الاندكس , او حتى تغييره بشكل كامل واخيراً سرقة الكوكيز . .
قمت بتصفح موقع [ zone-h ] بحثاً عن اكبر الشركات في الانترنت لكي ابرهن مدى خطورة هذه الثغرة , فوجدت شركة [ microsoft ] مسجله في [ zone-h ] وهذا هو رابط التسجيل
http://www.zone-h.org/mirror/id/6202670وكما تشاهد هنا حقن المخترق كود [ ********.****.innerHTML ] المعروف وهو الخاص في اظهار الرسالة بصفحة خاصة , وسنتكلم عن هذا الاستغلال البسيط في دروس الاستغلال طبعاً . .
كما تشاهد سابقاً ان شركة كبيرة مثل [ microsoft ] تم اختراقها بثغرة [ XSS ] وهذا يدل على خطورة الثغرة وانتشارها, واللغات المُصابة في الثغره , جميع اللغات المتخصصه في برمجة تطبيقات الويب مثل [ PHP , Perl , ASP ] والخ . .
طبعاً كما ذكرنا سابقاً ان ثغرات [ XSS ] خطيرة جداً ولها القدرة على تشوية الاندكس وعمل رسالة للاختراق , وكذلك اختراق صاحب الموقع عن طريق سحب الكوكيز الخاص فيه , والامر يصل حتى الى اختراق جهازه وجميع الزوّار , لذلك هنا نقول ان ثغرات [ XSS ] خطيرة جداً ولا يستهان ابداً بها . .
اعيد واكرر مره اخرى ان عدم فلترة المُخرجات هي السبب الرئيسي في تكون الثغرة , وبذلك علينا حماية المخرجات لكي لا يتمكن الزائر من حقن اكواد [ html , **** script ] والخ في الصفحة . .
[ ثانياً الاكتشاف والاستغلال ]
اهلاً وسهلاً بكم احبّتي اعضاء ساحة التطوير في درس استغلال واكتشاف ثغرة [ XSS ] !
بعد المقدمة تعلّمنا سابقاً , ماهي انواع الثغرة ومدى خطورتها وماذا يمكن ان يفعل المخترق بواسطة الثغرة , حان الوقت للتطبيق العملي [ على ] ماذكرناه سابقاً , لكي تكون فرصة ترقيع الثغرة كبيرة نتيجة تعلّمنا طرق الاستغلال والاكتشاف . .
وذكرت لكم في ان لكل ثغرة لابد من برمجة سكربت نقوم بالتطبيق عليه في بيئة السيرفر المحلي , وكذلك نقوم بترقيعه والتأكد من سلامة الترقيع , وطبعاً سكربت الـ[ XSS ] تم برمجته وفقاً للانواع المذكورة سابقاً [ ثابت وغير ثابت ] اي مُخزّن وغير مُخزّن , وطبعاً لابد ان اذكّر ان طُرق الاستغلال طُرحت لكي نختبر الحماية في المستقبل للثغرة , وكذلك نكون في علم بطرق الاستغلال التي قد يستغلها المُخترق . .