المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : شرح ثغرات xss بالتفصيل الممل



Abdullhadi JC
08-24-2012, 09:24 PM
السلام عليكم ,,,,,


اهلاً وسهلاً بكم احبّتي اعضاء في دراسة ثغرة [ 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 (http://www.zone-h.org/) ] بحثاً عن اكبر الشركات في الانترنت لكي ابرهن مدى خطورة هذه الثغرة , فوجدت شركة [ microsoft (http://www.microsoft.com/) ] مسجله في [ zone-h (http://www.zone-h.org/) ] وهذا هو رابط التسجيل


http://www.zone-h.org/mirror/id/6202670



http://img690.imageshack.us/img690/813/38965176.png


وكما تشاهد هنا حقن المخترق كود [ ********.****.innerHTML ] المعروف وهو الخاص في اظهار الرسالة بصفحة خاصة , وسنتكلم عن هذا الاستغلال البسيط في دروس الاستغلال طبعاً . .


كما تشاهد سابقاً ان شركة كبيرة مثل [ microsoft (http://www.microsoft.com/) ] تم اختراقها بثغرة [ XSS ] وهذا يدل على خطورة الثغرة وانتشارها, واللغات المُصابة في الثغره , جميع اللغات المتخصصه في برمجة تطبيقات الويب مثل [ PHP , Perl , ASP ] والخ . .


طبعاً كما ذكرنا سابقاً ان ثغرات [ XSS ] خطيرة جداً ولها القدرة على تشوية الاندكس وعمل رسالة للاختراق , وكذلك اختراق صاحب الموقع عن طريق سحب الكوكيز الخاص فيه , والامر يصل حتى الى اختراق جهازه وجميع الزوّار , لذلك هنا نقول ان ثغرات [ XSS ] خطيرة جداً ولا يستهان ابداً بها . .


اعيد واكرر مره اخرى ان عدم فلترة المُخرجات هي السبب الرئيسي في تكون الثغرة , وبذلك علينا حماية المخرجات لكي لا يتمكن الزائر من حقن اكواد [ html , **** script ] والخ في الصفحة . .




[ ثانياً الاكتشاف والاستغلال ]



اهلاً وسهلاً بكم احبّتي اعضاء ساحة التطوير في درس استغلال واكتشاف ثغرة [ XSS ] !


بعد المقدمة تعلّمنا سابقاً , ماهي انواع الثغرة ومدى خطورتها وماذا يمكن ان يفعل المخترق بواسطة الثغرة , حان الوقت للتطبيق العملي [ على ] ماذكرناه سابقاً , لكي تكون فرصة ترقيع الثغرة كبيرة نتيجة تعلّمنا طرق الاستغلال والاكتشاف . .


وذكرت لكم في ان لكل ثغرة لابد من برمجة سكربت نقوم بالتطبيق عليه في بيئة السيرفر المحلي , وكذلك نقوم بترقيعه والتأكد من سلامة الترقيع , وطبعاً سكربت الـ[ XSS ] تم برمجته وفقاً للانواع المذكورة سابقاً [ ثابت وغير ثابت ] اي مُخزّن وغير مُخزّن , وطبعاً لابد ان اذكّر ان طُرق الاستغلال طُرحت لكي نختبر الحماية في المستقبل للثغرة , وكذلك نكون في علم بطرق الاستغلال التي قد يستغلها المُخترق . .




اولاً تحميل السكربت . .


http://img408.imageshack.us/img408/3541/image007j.png (http://www.mediafire.com/?v0fvjdz8zofssj4)



قبل الدخول في شرح تنصيب السكربت , التعليق [ موجود ] على جميع الصفحات . .


http://img815.imageshack.us/img815/1596/87265483.png


اتمنى وصلت المعلومه , الان نقوم [ سريعاً ] بالدخول الى طريقة التنصيب . .


http://img685.imageshack.us/img685/6640/42673426.png


نقوم بالدخول الى [ phpMyAdmin ] !


http://img703.imageshack.us/img703/7792/70544967.png


نقوم بعمل قاعدة بيانات جديده باسم [ xss ] !


http://img696.imageshack.us/img696/8464/21272568.png


بعد التكوين نقوم باختيار [ القاعده ] من القائمة . .


http://img708.imageshack.us/img708/5653/45136584.png


نقوم بالضغط على [ import ] لاستيراد قاعدة البيانات . .


http://img855.imageshack.us/img855/5739/54761852.png


نقوم بالضغط على [ زر ] الاستعراض . .


http://img191.imageshack.us/img191/120/17546131.png


نجد ان القاعدة موجوده في مجلد السكربت باسم [ القاعده.sql ] !


http://img705.imageshack.us/img705/2731/69528602.png


نقوم بالضغط على [ تنفيذ ] لاستيراد القاعدة . .


http://img850.imageshack.us/img850/8711/38509822.png


تم الاستيراد وكما تشاهد تم تكوين الجدول وحقوله بنجاح . .


الان نقوم بنقل مجلد السكربت الى السيرفر المحلي داخل مجلد [ www ] طبعاً . .


نقوم بتحرير ملف الكونفق [ config.php ] !


http://img714.imageshack.us/img714/8757/49516128.png


طبعاً المستضيف [ + ] اسم المستخدم لا علاقة لنا فيه , الرقم السري للقاعده قم بادخال الرقم السري عند مرحلة تنصيب السيرفر المحلّي . . .


اما اسم القاعده والجدول تكلّمنا عنه سابقاً وفقاً للموجود الان ..


http://img683.imageshack.us/img683/5900/73485795.png


كما ذكرت لكم سابقاً ساعمل السكربت [ وفقاً ] لانواع الثغرة لكي نعمل المقارنة بالشكّل الجيد . .


طبعاً التصميم كلاسيكي متوافق مع هدف [ السكربت ] واتمنى انه ينال على اعجابكم


طبعاً المخزن [ يقصد ] به الثابت , والغير مخزن يقصد به الغير ثابت , مع العلم اني وضحت ذلك في المقدمة ولكن التكرار جيّد ومُفيد


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




http://img710.imageshack.us/img710/5431/11645351.png


نقوم باختيار المخزن [ الاكثر خطورة والاقل في الانتشار ] . .


http://img862.imageshack.us/img862/9678/27221471.png


كما تشاهد عملت مثل صندوق الرد , والصندوق يقوم بالتخزين والاستعراض من قاعدة البيانات , وبذلك الصفحة [ مخزنه ] . .


الان اولاً اكتشاف الخطأ البرمجي . .


الملف المختبر [ xss-sav.php ] نقوم بتحرير الملف في اي مُحرّر . .


http://img861.imageshack.us/img861/9907/65622689.png


كما تُشاهد هنا , ان المبرمج طلب طباعة الموجود في حقل الـ[ **** ] و [ comment ] واقصد بها العنوان والتعليق , دون اي فلترة , فوراً اطبع وهنا الخطأ البرمجي واضح وهو عدم تأمين المخرجات من القاعده في السطر [ 146 ] + [141 ] !


جيّد تم اكتشاف الخطأ البرمجي , والان بامكاننا اختبار السكربت , وعمل بعض الاستغلالات عليه . .


اولاً نقوم بتحميل الملف التالي . .


http://img408.imageshack.us/img408/3541/image007j.png (http://www.mediafire.com/?d2ib6h0u5d771dt)


الملف يحتوي على ..



http://img854.imageshack.us/img854/4418/74733840.png


اهم الاستغلالات التي اختبر بها السكربتات دائماً . .


في حالة تم تنفيذ اي من الاكواد السابقه هذا يعني ان السكربت مصاب . .


نقوم بتجربة كود اظهار رسالة [ ***** ] !


http://img96.imageshack.us/img96/7313/74830913.png


نقوم بادخال الكود الخاص في اظهار رسالة تحتوي على [ 12345 ] في الجافا سكربت , لغرض التجربة والتأكد من ان الحقل يقوم بفلترة المخرجات او لا !


http://img839.imageshack.us/img839/3973/77033912.png


كما تشاهد هنا ظهرت لنا رسالة تحتوي [ على ] الارقام المدخله سابقاً , الان نقول وبكل قوة ان السكربت مصاب نتيجة تجربة احد اكواد الجافا سكربت وتم تنفيذه كما تُشاهد . .


الان هنا بما ان النوع هو المخزن هذا يعني ان اي زائر [ سيقوم ] بالدخول الى هذه الصفحة سيرى هذه الرسالة !!


وبامكانك [ تجربة ] باقي اكواد التحذير . .


طبعاً الان الكود مخزن وفي حالة فتح الصفحة سنجد [ نفس ] النتائج وهذا مايعيق التجربه بالشكل السليم , وكنت ساعمل زر [ خاص ] في تفريغ قاعدة البيانات ولكن وجدت الاشكال في حالة تم استغلال الرسالة في صفحة خاصة وبذلك لن نستفيد من الزر بشكل عام . .


لذلك علينا ان نقوم بتفريغ القاعده يدوياً لكي [ يتم ] ازالة المدخل سابقاً , ونكمل باقي التجارب .


http://img835.imageshack.us/img835/7343/33319330.png


قم بالدخول الى قاعدة البيانات [ XSS ] !


http://img808.imageshack.us/img808/5231/62625623.png


قم بالضغط على الزر الخاص [ في ] افراغ الجدول كما في الصورة . .


http://img808.imageshack.us/img808/166/90374991.png


نقوم بالضغط على [ موافق ] للموافقة على تفريغ الجدول ..


http://img829.imageshack.us/img829/7752/36002646.png


كما تشاهد تم [ تفريغ ] الجدول بنجاح . .


http://img862.imageshack.us/img862/8891/85432230.png


والان نقوم بالدخول الى الصفحة مره اخرى , وكما تشاهد [ لا يوجد ] اي تعليق وذلك لاننا قمنا بازالة المدخل سابقاً . .


http://img151.imageshack.us/img151/6220/68982900.png


نقوم بتجربة كود اظهار الرسالة بصفحة خاصة [ كما ] تكلّمنا عن هذا الاستغلال في موضوع المقدمة


http://img839.imageshack.us/img839/5276/48594804.png


كما تشاهد خطر الثغرة يصل حتى الى [ تشويه ] الاندكس واظهار رسالة , نقوم بتفرغ القاعده كما تعلمنا سابقاً لتجربة استغلال اخر . .


http://img810.imageshack.us/img810/7224/55803080.png


نقوم بتجربة كود [ التحويل ] بعد فتح الصفحة نجد ..


http://img804.imageshack.us/img804/9560/53485001.png


كما تشاهد بعد فتح الصفحة [ تجد ] ان المتصفح يقوم بفتح الموقع


http://img851.imageshack.us/img851/4250/39109585.png


والان بعد انتظار التحميل [ فوراً ] ظهر لنا موقع الساحه , نفرّغ القاعده كما تعلمنا , ونقوم بتجربة استغلال اخر . .


http://img844.imageshack.us/img844/4430/56040353.png


هذا كود الفلاش وللاسف الشديد المنتديات العامه تقبل هذا الكود [ الصندوق الماسي ] وذلك لانه كود الفلاش , ولكن المخترق يستغله في مجال فتح صفحة وليس عرض الفلاش . .


نقوم بفتح صفحة الساحه بعرض [ 100 ] وارتفاع [ 300 ] كما موجود في الكود . .


http://img827.imageshack.us/img827/5695/92639250.png


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


هنا تأتي الخطورة الكبيره , باختراق جهاز صاحب السكربت وكذلك الزوار , عن طريق استخدام الاستغلال السابق وفتح صفحة ملغّمه في اي ثغرة يقبلها نظام صاحب السكربت [ + ] بعرض وارتفاع صغير وهذا يعني انه لا يرى فتح الصفحة ولكن سيتم فتح الصفحة !!


طبعاً هذا الاستغلال خاص في مخترقي الانظمة وليس مخترقي السكربتات , لذلك عملت فديو سريع لكي ابرهن نجاح الاستغلال . .




قم باختيار جودة [ HD ] تم استخدام ثغرة الاختصارات [ windows/browser/mhttp://www.v4-team.com/cc/images/smilies/biggrin.gif0_046_shortcut_icon_dllloader (http://www.****sploit.com/modules/exploit/windows/browser/ms10_046_shortcut_icon_dllloader)] داخل مشروع الـ[ ****sploit (http://www.****sploit.com/)] , ووضع رابط المجلد المصاب داخل الصفحة بعرض وارتفاع صغير لكود الفلاش المعروف . .


وكما تشاهد تم اختراق الجهاز بنجاح , وهذا يعني اختراق مدير السيرفر والزوّار كذلك , لذلك ذكرت ان ثغرة [ XSS ] خطيره جداً ولا يستهان ابداً بها . .


نذهب اخيراً الى اخر استغلال واقدم استغلال , وهو [ سرقة ] الكوكيز , كما يعلم الجميع ان اي عضوية تقوم بتسجيل الدخول لها رمز امني يمّيزها عن باقي العضويات , وفي حالة دخول الموقع مره اخرى , نجد ان المتصفح لا زال مسجل دخوله في المنتدى , نتيجة تواجد هذا الرمز الامني محفوظ في المتصفح . .


الكوكيز عمله بشكل عام تخزين [ طلبات ] وشخصية الزائر , فمثلاً هناك اللغه اسفل المنتدى ان قمت باختيار اللغه الانجليزيه مثلاً هناك كوكيز يميّزك وفي دخولك مستقبلاً للموقع تجد انه فعلاً لازال حافظ تغيّراتك للغه الانجليزية . .


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


اولاً عملت سكربت بسيط يحتوي على . .


http://img837.imageshack.us/img837/9941/31135406.png


كما تشاهد سكربت بسيط هدفه سرقة الكوكيز وفتح ملف باسم [ co okies.html ] بدون مسافة وكتابة الكوكيز المسروق فيه . .


للتحميل .


http://img408.imageshack.us/img408/3541/image007j.png (http://www.mediafire.com/?4if697yals6lfaz)


نقوم بنقله الى مجلد السكربت [ XSS ] . .


http://img215.imageshack.us/img215/6627/17384852.png


اولاً نقوم بعمل اختبار لاظهار [ الكوكيز ] , وبعد ذلك نقوم بسرقته . .


http://img98.imageshack.us/img98/8999/24807388.png


كما تشاهد كوكيز باسم [ NassRawI ] والمحتوى [ d99y_team ] سنقوم الان بتجربة طريقة سرقة الكوكيز , طبعاً هذا كوكيز ثابت وانا قمت بعمله في الصفحة الرئيسية للسكربت لغرض عمل الاختبارات الامنية وتجربة سرقته . .


http://img824.imageshack.us/img824/466/58196047.png


طبعاً بامكانك [ عرض ] الكوكيز من المتصفح . .


http://img94.imageshack.us/img94/8932/72061697.png


الخصوصية [ + ] تنزيل الكعكات الشخصية . .


http://img30.imageshack.us/img30/2387/98654664.png


كما تشاهد الكوكيز , ولكن انا القصد من [ اظهار ] الكوكيز من السكربت وذلك لاني اعمل اختبار امني للسكربت , واتأكد اني قادر فعلاً على سرقة الكوكيز الذي املكه !


بعد نقل الملف [ co okies.html ] بدون مسافة الى مجلد السكربت نقوم بعمل الاختبار


http://img864.imageshack.us/img864/9030/30455665ql.png


نقوم باستخدام الاستغلال الخاص في سرقة الكوكيز كمثال للسكربت الذي قمنا بتنزيله سابقاً . . .


الان نقوم باستعراض ملف [ co okies.html ] بدون المسافة الذي عمله السكربت الخاص في سرقة الكوكيز . .


http://img850.imageshack.us/img850/2923/69904569.png


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


http://img839.imageshack.us/img839/3250/59383615.png


اضافة [ Edit Co okies (http://goo.gl/L6CpP) ] المعروفة للفايرفوكس , وبذلك الدخول الى عضوية الادمن , ولكن بوجهة نظري ان اختراق الجهاز الاستغلال الاكثر خطورة اما سرقة الكوكيز سيكون بصلاحيات محدوده بعكس عندما يملك الرقم السري الفعلي للعضوية [ يمكنه التحكم بشكل كامل وتعديل الاعدادات واعادة تغيير الرقم السري ] ويملك جهاز المُدير كذلك , بعكس الكوكيز سيكون بصلاحيات محدودة في حالة طلب الرقم السري . .


http://img849.imageshack.us/img849/3081/24445601.png


واخيراً الان نقوم بالدخول الى النوع [ الغير مُخزّن ] !


http://img607.imageshack.us/img607/2009/22377964.png


اولاً كما تشاهد الخطأ البرمجي واضح في سطر [ 65 ] عدم تأمين المُخرجات . .


http://img708.imageshack.us/img708/7097/56423269.png


نقوم بعمل رسالة اختبار [ 12345 ] كما تعلمنا في السكربت المُخزّن . .


http://img15.imageshack.us/img15/8688/93479965.png


وكما تشاهد [ تم ] التّنفيذ بنجاح . .


http://img220.imageshack.us/img220/434/22062010.png


الان كما تشاهد ان السكربت غير مُخزّن والمرسل فقط يظهره , هنا نقول ان السكربت غير مخزن وغير ثابت , وفي حالة اي شخص قام بالدخول الى الصفحة الرئيسية للسكربت الغير مخزن لن يرى اي تغيير بواسطتك , لذلك الامر اقل خطورة من السابق . .


ولكن الحاجة ام الاختراع والمُخترق دائماً يضع افكار توصله لنتائج مفيده , مثلاً الان كما نشاهد في السكربت الغير مُخزّن ان المدخل يظهر في الرابط سواءً [ GET | POST ] وسيتمكن من الاستغلال , لذلك من الممكن للمخترق ان يستغل الامر بارسال الرابط الذي يحتوي مثلاً على استغلال سرقة الكوكيز , الى مُدير السكربت وبذلك اختراقه [ ولكن عن طريق الارسال ودخول الرابط بعكس السابق ] . .


http://img89.imageshack.us/img89/8126/24955760.png


كما تُشاهد نقوم بارسال الرابط بهذا الشكل لغرض سرقة الكوكيز , قد يأتي شخص [ ويقول ] ان الاستغلال واضح لمدير الموقع , من الممكن تشفير الرابط مابعد الاستغلال في موقع يقدم خدمة تشفير الروابط وهو . .


http://meyer***.com/eric/tools/dencoder/ (http://meyer***.com/eric/tools/dencoder/)


http://img97.imageshack.us/img97/4571/75813656.png


نقوم بالدخول الى الموقع وتشفير [ كود ] الجافا سكربت للمراوغة


http://img818.imageshack.us/img818/8533/90025590.png


وكما تشاهد تم تشفير الاستغلال واصبح [ غير ] واضح وبالشكل النهائي يكون . .


http://img89.imageshack.us/img89/2388/35582266.png


كما تشاهد هذه من احد اساليب المراوغه في السكربت الغير مُخزن . .


الان تعلّمنا ان السكربت المخزن [ حين ] دخول الشخص الى السكربت , سيجد الرد الملغّم فوراً وبذلك التطبيق عليه بعكس الغير مخزن عليك ارسال رساله والمراوغه بها [ وذلك لانه غير مخزن انت من يقوم بطلبه ] وبذلك ذكرنا ان الاستغلال المخزن هو اكثر خطورة من الغير مُخزّن . .


تم بحمد الله شرح اكتشاف الخطأ البرمجي , وجميع طرق الاستغلال المتوفّره , اتمنى ان الدرس كان واضح وطبعاً الجميع يعلم ان طرق الاستغلال طُرحت لكي نأخذ الحذر منها وكذلك نوضّح خطورة الثغرة واخيراً لكي نقوم بتجربة الاستغلالات مابعد الترقيع ان شاء الله . .




[ اخيراً الترقيع ]


اهلاً وسهلاً بكم احبّتي , واتمنى للجميع بالصحة والعافية


تمّ بحمد الله الانتهاء من المقدمه والاستغلال والاكتشاف , والان حان وقت ترقيع الثغرة , والتأكد من سلامة الترقيع . .



تعرّفنا سابقاً ان الثغرة تقوم على سبب عدم فلترة المُخرجات , وكذلك تعرّفنا ان المخترق يحتاج الى وسوم [ html , **** script ] والخ لحقنها في الصفحة وتنفيذها . .


طبعاً الـ[ php ] وفرت وظائف داخليه لفلترة المخرجات مثل تعطيل الوسوم الهامه [ / , ' , " , > , < ] وجميع الرموز التي لابد من توفّرها لتفعيل الكود . .


هناك دوال تقوم بحذفها والاخرى تقوم بتعطيلها وطباعتها , سأقوم بشرح افضل الدوال حتى الان متوفره وجاهزه في الـ[ PHP ] وحلول فاشله , وكذلك عمل دالة خاصة بنا للترقيع !




اولاً حلول فاشله , اول دالة وهي [ htmlentities ] مشكلة الدالة هي تضخيم القاعده والحرف الواحد في اللغه العربيه = 3 حروف واكثر , وبذلك تضخيم القاعده 3 مرات من حجمها الطبيعي , ثانياً مشاكل الترميز في اللغه العربيه التي لا تنتهي [ لذلك لا تُناسب البرمجيات العربية ] . .


تجربة الدالة . .


http://img638.imageshack.us/img638/4293/36819752.png


نفتح الملف [ xss-sav.php ] وكما تعلّمنا سابقاً ان الخطأ البرمجي هو طباعة المخرجات دون فلترتها في سطر [ 140 ] وسطر [ 145 ] طبعاً الاول هو الخاص بالعنوان والثاني هو الخاص بالتعليق . .


http://img815.imageshack.us/img815/5170/96989684.png


استخدام الدالة بسيط ضعها قبل المراد طباعته وداخل [ () ] كما في الصورة . .


http://img29.imageshack.us/img29/1902/92804262.png


نقوم بادخال حرف [ عربي ] كمثال . .


http://img189.imageshack.us/img189/4307/19233651.png


وكما تشاهد مشاكل الترميز كثيرة ولا تنتهي [ في ] الدالة , ناهيك عن تدبيل حجم القاعده والاحرف . .


http://img42.imageshack.us/img42/4271/40177787.png


ولكن هي ناجحة في الترقيع , نقوم [ بنسخ ] المستند ولصقه وتجربة الارسال . .


http://img717.imageshack.us/img717/3562/62716315.png


وكما تشاهد تم الطباعه دون التنّفيذ , وهذا يعني انه ترقيع جميل ولكن كما ذكرت ان مشاكل اللغه العربيه وعدد الاحرف لا تنتهي . .


افضل دالة للترقيع حتى الان هي دالة [ htmlspecialchars ] قمت باختبارها امنياً ولم اخرج باي نتائج , والدالة تستخدم في اشهر السكربتات وينصح بها كبار مجال الامن والحماية , البعض يقول ان ممكن تخطيها ولكن الكلام غير صحيح ابداً , الا ان كان يوجد هناك دليل فعلي على ذلك . .


http://img143.imageshack.us/img143/6819/38055427.png


نقوم باستخدام الدالة [ كما ] تعلمنا سابقاً , ونحفظ الملف . .


http://img838.imageshack.us/img838/1170/63758269.png


انسخ [ المستند ] بأكمله والصقه ..



http://img580.imageshack.us/img580/5696/34741511.png


وكما تشاهد تم الطباعه [ دون ] الحذف والتنفيذ . .


http://img191.imageshack.us/img191/2405/66598089.png


طبعاً بعد عرض المصدر وكما تشاهد تم تحويل الوسوم الضرورية الى [ ASCII ] وبذلك عرض دون تنفيذ , طبعاً الـ[ / ] بسبب ان الـ[ Magic Quotes ] مُفعّل وان شاء الله مستقبلاً سنتعلّم فوائده http://www.d99y.com/vb/images/smilies/13.gif


تمام الان تم ترقيع الثغرة بشكل كامل باستخدام الدالة المشهورة [ htmlspecialchars ] ذكرنا سابقاً انها تقوم بطباعة المخرجات مع تحويل بعض الوسوم الى [ ASCII ] لمنع تنفيذها , قد يأتي شخص ويقول نصراوي انا احتاج الى بعض الوسوم الخاصة في الـ[ HTML ] في صندوق الرد مثل [ <b> ] الخاص بجعل النص عريض مثلاً . .


هنا يأتي عمل الدالة [ strip_tags ] !


الدالة عكس السابقة [ htmlspecialchars ] التي تقوم بتحويل الوسوم الى [ ASCII ] وطباعتها بشكل كامل , الدالة [ strip_tags ] تقوم " بالحذف " بشكل كامل لجميع الوسوم الخطيره وكذلك الوسوم التي تملكها الدالة السابقة مثل [ < > ] وتحولها الى [ ASCII ] ولكن هي اكثر دقه من السابقه بكل تأكيد وهي تقوم "بالحذف " للاكواد الخطيرة وعمل تحويل لبعض الوسوم , هي جيّده فعلاً ويستخدمها الكثير ولكن "الحذف" غير مقنع للبعض , على العموم سنقوم باستخدام الدالة بالشكل الافتراضي


http://img843.imageshack.us/img843/7100/26302500.png


كما تعلّمنا سابقاً . .


http://img13.imageshack.us/img13/7987/43912033.png


قم بتجربة الاستغلالات . .


http://img220.imageshack.us/img220/5466/83909683.png


وكما تشاهد تم الحذف والتعديل والتعطيل والخ . .


جيّد الان نعود الى محور حديثنا كيفية السماح الى بعض الوسوم المفيده مثل [ <b> <br> ] !


الدالة لها بارمترين الاول هو المراد تأمينه كما تعلّمنا سابقاً والثاني هي الوسوم المسموحة . .


http://img685.imageshack.us/img685/4641/82507350.png


وكما تشاهد استخدمت البرمتر الاول هو للمراد تأمينه والثاني هي للوسوم المسموحة [ <b> ] مثلاً .


http://img219.imageshack.us/img219/9130/15081028.png


متااااااابع
نقوم بتجربة استخدام الوسم قبل [ السماح ] وكما تشاهد تم حذف الوسم دون تنفيذ . .


http://img823.imageshack.us/img823/7195/90693274.png


وبعد الاستخدام كما تشاهد النص اصبح عريض , وهذا يعني ان الدالة سامحه للوسم المختار سابقاً وبامكانك اختيار جميع الوسوم الغير ضارة والمفيده مثل [ <b> <br> <h1> ] والخ . .


جيّد الان تعلمنا كيف نقوم بحماية المخرجات بابسط الطرق , ومن الممكن ان تعمل دالة خاصة بك وفقاً لـ[ نظرتك ] في الترقيع بدلاً من الدوال الجاهزة


http://img202.imageshack.us/img202/8140/21063855.png


وكما تشاهد عملت [ function ] جديد باسم [ d99y_xss ] واستخدمت دوال النصوص المعروفة وهي [ strtolower ] لتحويل الحروف من كبتل الى سمول , للابتعاد عن مشكلة التلاعب في الاحرف , واستخدمت دالة الاستبدال [ str_replace ] وقمت باستبدال جميع الوسوم التي نحتاجها في عملية الاستغلال , الى مسافه , وبذلك الان عملنا وظيفة جديده تقوم بالحماية من الثغرة , طبعاً [ " ' < > / ] هي كافية بالاساس للحماية ولكن للتأمين اكثر . .


http://img34.imageshack.us/img34/2884/99403400.png


وهنا نقوم بالتجربة ضع الـ[ function ] طبعاً داخل وسوم [ php ] وبعد ذلك نستخدمها . .


http://img594.imageshack.us/img594/5828/61899968.png


كما تعلمنا سابقاً نضع اسم الـ[ function ] ونقوم بالتجربة !


http://img840.imageshack.us/img840/5559/94873056.png


وضعت المستند بأكمله وقمت بالضغط على [ ارسل ] . .


http://img607.imageshack.us/img607/1850/14933669.png


وكما تشاهد تم تعطيل الاكواد بشكل كامل , طبعاً الامر عائد لك قم بالتعديل واضافة اي وسم خطير وبذلك صنعت [ function ] حماية خاصة فيك . .


والامر عائد لك باستخدام الدوال الجاهزه او التي عملتها انت , لتحميل الـ[ function ] . .


http://img408.imageshack.us/img408/3541/image007j.png (http://www.mediafire.com/?7bvzwmt7bl4oozf)



طبعاً طريقة ترقيع الملف الاخر الغير مخزن نفس ماذكرنا سابقاً . .


http://img217.imageshack.us/img217/2959/14586264.png


كما تشاهد في السطر [ 65 ] تعلّمنا في درس الاكتشاف ان الخطأ هو طباعه المخرجات دون حماية . .


http://img204.imageshack.us/img204/6070/75755104.png


وكما تعلّمنا سابقاً استخدام احد دوال [ الحماية ] بالطريقة المعروفة ولا حاجة للتكرار . .


http://www.d99y.com/vb/b2.png


واخيراً تم ترقيع [ XSS ] بنجاح , وبطرق واساليب كثيره ولك الحرية الكامله في الاختيار , ولكن هناك مشكلة صغيرة في ترميز [ UTF-7 ] طبعاً الترميز لا اعتقد ان هناك مخلوق في عام [ 2011 ] يستخدمه , ولكن حرصاً على ايصال فكرة الحماية بشكل جيّد . .


http://img843.imageshack.us/img843/9881/82679622.png


نقوم بالتطبيق على ملف [ xss-nosav.php ] كما تشاهد نحول الترميز . .


http://img221.imageshack.us/img221/2529/73288970m.png


نحوله الى [ UTF-7 ] وندوس على حفظ باسم . .


http://img194.imageshack.us/img194/3785/53749007.png


نحفظه بنوع [ without BOM ] . .


http://img683.imageshack.us/img683/7708/62938446.png



طبعاً لابد من استخدام متصفح قديم مثل [ Internet Explorer 6,7,8 ] واصدارات الفايرفوكس القديمه , اما الجديده جميعها لا تنفذّ الثغرة , لانه تمّ الاستغناء عنها . .


ولابد ان تضع الاستغلال من الرابط مباشرة . .


http://img143.imageshack.us/img143/4774/32435422.png


وكما تشاهد تم استعراض الكوكيز وتنفيذ الكود المشفر بواسطة [ utf-7 ] طبعاً لو تستخدم جميع دوال الحماية لن تستفيد اي شيء , لان المشكله هي من الترميز نفسه وليس من الحماية , لذلك يفضل دائماً الابتعاد عن الترميز القديم [ utf-7 ] والمتصفحات القديمه التي تدعمه , لافضل حماية وامان ..



تمّ الانتهاء بحمد الله من دراسة ثغرات [ XSS ] وكان الامر طويل جداً ومُتعب خصوصاً شرح جميع الاستغلالات والاخطاء والترقيعات وتوضيحها والبرمجة والتصميم والامر متعب جداً ولكن ان شاء الله نجد الاجر عند الله . .


اتمنى ان الدراسة كانت واضحة , ومفيده للجميع , وتذكّروا دائماً ان فهم الاستغلال هو الطريق لتكوين الحماية والتأكد كذلك منها . .


تم الانتهاء من حماية المخرجات وبذلك الحماية من ثغرات [ XSS ] المشهورة . .



لاتنسوووووني بالتقييم


منقول للاستفده والافدة

QtRoNiX FoX
08-24-2012, 11:14 PM
مشكوور اخوي Abdullhadi JC على الموضوع الي في قمة الروعة
مشكور على النقل, وجعلها في ميزان حسناتك ياغالي ان شاء الله

تحياتي

Abdullhadi JC
08-24-2012, 11:33 PM
تسلم يا غالي واعتقد انه موضوع يستحق التثبيت ;) اليس كذالك ؟

QtRoNiX FoX
08-24-2012, 11:47 PM
تسلم يا غالي واعتقد انه موضوع يستحق التثبيت ;) اليس كذالك ؟

مثل هيك موضوع بالتأكيد يستحق التثبيت 1000% لانه بعتقد ما في اقوى من هيك شرح عربي لثغرات Xss
موضوع حصري بنسبة عالية جداً ما شاء الله

تم التثبيت
تحياتي

Abdullhadi JC
08-24-2012, 11:57 PM
مشكور يا غالي ,الله يجزيه كل خير يلي تعب ب الموضوع حقا انه موضوع رائع
قرأته وقلت لازم انقله وحفظت الصفحة مع الصور كي لا يضيع الموضوع اذا انحذفت الصور
من السيرفر :p
تحياتي لك.

QtRoNiX FoX
08-25-2012, 12:13 AM
مشكور يا غالي ,الله يجزيه كل خير يلي تعب ب الموضوع حقا انه موضوع رائع
قرأته وقلت لازم انقله وحفظت الصفحة مع الصور كي لا يضيع الموضوع اذا انحذفت الصور
من السيرفر :p
تحياتي لك.
من ناحية الشب الي عمل هيك موضوع, بصراحة انا عجزت عن التعليق بأختصار!
وكل الاحترام والله, وكمان وعامل سكربت ضخم ما شاء الله
ويسلمو على احتفاظك بالموضوع كامل, يعطيك الف عافية ما قصرت

بالتوفيق ان شاء الله

حبوط
08-25-2012, 03:28 PM
بارك الله فيك على النقل + جاري التقيم + فايف ستارز

Abdullhadi JC
08-26-2012, 01:01 AM
من ناحية الشب الي عمل هيك موضوع, بصراحة انا عجزت عن التعليق بأختصار!
وكل الاحترام والله, وكمان وعامل سكربت ضخم ما شاء الله
ويسلمو على احتفاظك بالموضوع كامل, يعطيك الف عافية ما قصرت

بالتوفيق ان شاء الله

^_________^

Abdullhadi JC
08-26-2012, 01:02 AM
بارك الله فيك على النقل + جاري التقيم + فايف ستارز

مشكوووووور يا غالي تسلم
^_^

مشاري احمد
08-26-2012, 01:31 AM
مشكوووووور
على موضوع الرائع
يعطيك الف العافيه
تقبل مرورري يالغلا

Abdullhadi JC
08-26-2012, 01:31 AM
مرورك الأروع يا غالي
تحياتي لك ^_^

dark haCk
08-27-2012, 05:27 PM
مشكوووووووووووووووووووووو ووووووور ويعطييك الف عافية ..تحياتي لك ياغآلي :)

Abdullhadi JC
08-27-2012, 11:47 PM
مشكوووووووووووووووووووووو ووووووور ويعطييك الف عافية ..تحياتي لك ياغآلي :)

العفو يا غالي الله يعافيك ويسلمك
مشكور على مرورك الرائع

DaRk*Vo!d
08-30-2012, 07:28 PM
عاشت ايدك على الموضوع

مشاري احمد
08-30-2012, 08:22 PM
مشكوووووور ع مجهودك
تم تقييمك يابطل

Abdullhadi JC
09-01-2012, 09:12 PM
مشكووور على المرور جميعا
ومشكور على التقييم ^_^

awab99
09-02-2012, 02:27 AM
تسلم على الشرح الجميل هذا

Sniper10
09-02-2012, 11:16 AM
صراحه ماقصرة قمت الابداع والتميز الى الامام

ghaith10
09-04-2012, 12:15 PM
موضوع ممتع ومشوق للقراءة!! أتمنى أن تواص ((GôÖD)) :redface:

yurirevenge
09-08-2012, 01:25 PM
مشكور موضوع جميل

root22
09-13-2012, 09:52 PM
عااااااااااااااااااااااشت ايديك

zaizo max
09-20-2012, 06:17 PM
مفيش احلى ولا اروع من كدة
الف شكر لتعميم الفائدة
تقبل احلى تقييم

مهند سفروت
09-21-2012, 01:33 AM
مشكور اخي الكريم جزاك الله كل خيررر

دمعة شراري
09-21-2012, 02:06 AM
كبير يا بطل ,,,!

تحياتي وتقديري لكـ

سارة الغامدي
10-11-2012, 08:13 AM
يسلمؤؤؤؤؤ .. يعطيك الف عافية

Abdullhadi JC
10-23-2012, 11:22 AM
يسلمو جدا على الردود الجميلة من اعضاء أكثر من رائعين :)

عبدالرحمن القميري
01-11-2013, 10:20 PM
يااخوي الموقع مو شغال الي عطيتني

Black Samurai
01-12-2013, 04:28 PM
مشكووووووووووووور ..... جزاك الله خير

anass1234
01-21-2013, 10:45 AM
مشكور يا كبير

Abdullhadi JC
01-25-2013, 09:45 PM
يااخوي الموقع مو شغال الي عطيتني
اي موقع أخي ؟ لا اتذكر اني عطيتك شي :( !!

- - - تم التحديث - - -

مشكور على المرور جميعا

dark prince
02-06-2013, 04:29 AM
بارك الله فيك مشكور اخي

Guhks
02-28-2013, 11:13 PM
هل xss افضل من SQL ؟

Abdullhadi JC
03-08-2013, 04:02 AM
هل xss افضل من SQL ؟

وضح اكثر اخي ,, xss ثغرة لها طريقتها الخاصة ب اختراقها و sql لها طريقة مختلفة كليا بالاختراق .

Elhadj-Dz
04-05-2013, 02:13 PM
بارك الله فيك

HAK 3LOSH
04-09-2013, 01:56 AM
مشكور ااخي على الطرح

blackcode1
04-09-2013, 12:50 PM
مشكووووور أخي

ابو مهند
04-20-2013, 03:17 PM
لدري مشكله في الشرح هل من مجيب

عادل سمير
05-07-2013, 12:46 PM
بارك الله فيك

ابوهريس هكر
05-19-2013, 06:47 PM
اعتقد انك تستاهل التقييم وترقيه

Abdullhadi JC
07-09-2013, 01:01 AM
مشكور على مروركم الجميل اخواني الكرام,,
تفضل اخي ابو مهند كيف بقدر اساعدك ؟؟

abdouni33
07-26-2013, 07:21 AM
مشكووووووووووور على الموظوع مرة حلو يعطيك العافية أخي

Abdullah.Bedo
07-26-2013, 11:12 AM
الشرح طويل أوووي يا ريت اختصار بليز

shadow_tdk
07-30-2013, 06:40 PM
موضوع رائع بصراحة من أفضل الشروحات للثغلاة
والله يجزيك ألف خير

هيسوكا07
08-22-2013, 11:52 PM
بارك الله فيك يالغالي

himowaw
09-17-2013, 05:10 AM
مشكوررررر يا غالى

Abdullhadi JC
10-05-2013, 07:41 AM
اشكركم جميعا على المرور الجميل والمميز ^^

billel_rck
12-17-2013, 06:32 PM
بارك الله فيك حبيبي :redface:

shhaby
01-17-2014, 10:55 PM
بارك الله فيك موضوع اكثر من رائع ... بالتوفيق

no-ip
02-11-2014, 12:22 AM
مشكور اخي على الموضوع الرائع
شرح وافي وكافي
يعطيك ربي العافيه
يستحق التقييم

TOU21
06-16-2015, 12:59 AM
شكرا علي الشرح الرائع
واصل