ملاحظة : التدوينات للغرض التعليمي فقط ! وابرئ نفسي امام الله من كل شخص يستعمل هذا العلم باي شكل لا يرضي الله تعالى .
1. مقدمه
ثغرات Cross Site Scripting أو XSS تحتل المرتبه الثانيه حسب تصنيف OWASP بعد ثغرات الحقن " Injection "
وهنا شرح لثغرات الحقن من الأخ صبري لمن اراد الاستزاده http://www.security4arabs.com/2013/01/10/sql-injection-cheat-sheet
التطبيق سوف يكون على احد التطبيقات الموجودة في موقع Hack.me وهنا مقال عن هذا الموقع من الأخ صبري ايضاً
http://www.security4arabs.com/2012/10/21/hackme-projec/
اثراء : سبب اختصار جمله Cross Site Scripting الى XSS بدل CSS لعدم الخلط بينها وبين لغه الأنماط القياسيه CSS
2. أنواع ثغرات الـ XSS
1- Stored - مُخزّنه
2- Reflected - غير مُخزّنه
3- Dom-Based XSS - لن اتطرق لها لقلّه خبرتي ومعلوماتي عنها .
النوع المُخزّن وهو أقل انتشارً والاكثر خطورة لان الاستغلال الذي يضعه المهاجم سوف يظل في قاعده بيانات السكربت .
النوع الغير مُخزّن وهو الاكثر انتشارً والاقل خطوره لان الاستغلال لا يخُزن في قاعده البيانات ويعمل في حالة الطلب فقط .
سوف تتضح الفكره اكثر عند اكمالك للتدوينة .
3. كيف تعمل ؟
ثغرات الـ XSS تسمح للمهاجم بتشغيل اكواد Javascript أو Html وسبب تكونها هو عدم فلتره المدخلات .
4. إختبار ثغرات الـ XSS
سوف نبدأ بإختبار النوع المُخزّن - [ Stored ] وهو الأكثر خطورة .
في اغلب الاحيان النوع المُخزّن يكون في صناديق البحث وصناديق التعليقات .
قمت باختيار سكربت DVWA من موقع Hack.me للتجربه عليه وهو سكربت مخصص لهذا الغرض .
قمت باختيار XSS Stored من القائمه الموجوده في اليسار وجعلت الـ DVWA Security LOW
يوجد صندوق تعليقات يمكننا تجربه اكواد Javascript او Html عليه للتاكد من وجود ثغره XSS من عدمه
كتبت كود Javascript يقوم باظهار تنبيه مكتوب فيه XSS
فعلاً تم تنفيذ الكود , وهذا يعني ان الموقع مصاب بثغره Stored XSS
وهذا يعني في كل مره تدخل نفس الصفحه سوف يظهر لك التنبيه دون تدخل منك!
وعلى ذلك قس , ولا تنسى اكواد الـ Javascript وماذا ممكن ان تفعل :)
استغلال اخر : وهو وضع صوره في هذه الصفحه وجميع من يدخل الصفحه سوف يراها .
الكود :
"><img src=http://ccinsider.comedycentral.com/files/2012/03/Bender1.jpg onerror=prompt(1);>
وهو اطول من 50 حرف , وعدد الاحرف المسموح بها في صندوق التعليقات في سكربت DVWA - XSS Stored هو 50 حرف فقط
قمت بعمل تعديل بسيط على الصفحه بحيث يسمح لي بوضع اي عدد من الاحرف .
ظهرت الصوره , وجميع من سوف يدخل الصفحه سوف يراها و حتى لو قمت بتحديث الصفحه سوف تظهر الصوره ايضاً , لان الثغره XSS Stored :)
اعتقد الان اصبحت لديكم خلفيه جيده حول الـ Stored XSSسوف ننتقل الان الى النوع الاخر الغير مُخزّن - Reflected
سوف اجرب الاستغلال الثاني لاني سوف اوضح من خلاله الفرق بين الـ Stored و الـ Reflected .
سوف اضع نفس الكود السابق في الصندوق الموجود في خيار XSS Reflected في سكربت DVWA
تم الاستغلال بشكل مشابه للـ Stored XSS , ولكن دعونا نجرب عمل تحديث للصفحه
لم يعد الاستغلال موجوداً , هنا يكمن الفرق بين الـ Stored و الـ Reflected
ولكن بالامكان نسخ الرابط بعد ظهور الاستغلال وارساله لاي شخص وسوف يرى الاستغلال وكانه هو من قام به .
سوف تجدون على هذا الرابط اكواد لتخطي بعض انواع الفلتره
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
سوف أقوم بتحديث التدوينه باذن الله لاضافه بعض المعلومات الجيده .
من لديه اقتراح او انتقاد او اضافه فليتفضل بها مشكوراً .
ان اصبت فمن الله وان اخطأت فمن نفسي ومن الشيطان .
السلام عليكم ورحمة الله
ردحذفانا الاخ عبدالله وطالب دراسات ورسالتي عن xss
اتمنى منك اخي الكريم ان تفيدنا بما علمك الله بالاتي:-
1-كيف احمي نفسي من تغرات xss
2-هل يمكن ان اصنع داله تقوم بالفلتره للاكواد الخبيته
3-كيف اسرق الكوكيز (cookie)
4-كيف احمي الموقع من تغرات xss
5-كيف احمي المستخدم من تغرات xss
اتمنى الرد قريبا وشكرا....
< name="I1" " margin="1" margin="1" ="1" ="1" scrolling="no" border="0" frameborder="0"> <
ردحذف