م. عبدالعزيز الشمري
م. عبدالعزيز الشمري

@IT2CAM

15 تغريدة 889 قراءة Apr 02, 2020
#ثريد
بسم الله
كل يوم او يومين بسوي ثريد عن ثغرة وطريقة استغلالها وطريقة الحماية منها 💻
وبهذا الثريد بتكلم عن ثغرة
Cross Site Scripting
’’ XSS ’’ 🛠
ماهي ثغرات XSS ؟
ثغرات الـ xss هي اختصارلـ" Cross Site Scripting " وسبب تسميتها xss بدلا من css لكي لا تختلط مع لغة css.
الــ XSS هي ثغرات أمنية منتشرة بكثرة في تطبيقات الويب وخطيرة جداَ.
يمكن من خلال هذه الثغرات يقوم "المهاجم" او الهاكر بحقن كود خبيث.
الكود الخبيث عادة ما يكون بلغة جافاسكرببت JavaScript او HTML فيقوم المتصفح بتنفيد اوامر الكود عندما يتم تحميل الصفحة عند (الضحية).
انواع ثغرات XSS :
1- ثغرات XSS ثابته - مخزّنه
2- ثغرات XSS غير ثابته - غير مخزّنه
3- ثغرات XSS Dom-based
1- ثغرات XSS الثابته - مخزّنه:
تعتبر ثغرة XSS الثابتة اخطر ، وذلك لان مايدخله المخترق ثابت بالصفحه، اي مايدخله مثلاً يخزّن بقاعدة بيانات الموقع حيث عند دخول موضوع يحتوي على امكانية التفاعل بالردود او فيه مدخلات و لم يكون الموقع محمي بالتأكيد سيمكنه من حقن اكواده بسهولة تامة
وعند تنفيذ اكواده بعدها اي شخص يقوم بالدخول الى الموضوع المحقون بكود الثغرة سيشاهد اعمال المخترق في الصفحة .
ثغرات XSS الثابته البعض يُطلق عليها HTML Injection لكي يوضّح انها ثغرة XSS مُخزّنه وخطيرة ولكن التسمية ليست صحيحه فعلياً
2- ثغرات XSS الغير ثابته - الغير مخزّنه:
هي النوع الاكثر انتشارا وليس خطير وهي التي تقوم على الادخال الخاص فتكون غير مخزنة في قاعدة البيانات وبذلك اي زائر يدخل للموقع لايشاهد مافعله المخترق لانها لم تخزن الاكواد في الموقع في قاعدة بياناته ويمكن للمخترق مشاركتها مع ضحايا محددين.
3- Dom-based XSS :
وهو شبيه جدا بالنوع ( XSS الغير ثابته ) ، غير أنه يرتكز بالأساس على التحكم في Dom الخاص بالصفحة عبر تنفيذ سكريبت مكان إرسال قيمة معينة.
التهديدات:
خطورة الثغرة كبيرة جداً في النوع الثابت ، وذلك لانه يمكن للمخترق اولا اختراق زوار الموقع وهذا يعني القدرة على اختراق مدير الموقع وبذلك اختراق web server و كذلك تشويه index او الصفحة الرئيسية للموقع او حتى تغييره بشكل كامل او حذفة بالكامل واخيراً سرقة cokiees الخاص به.
طريقة استغلال الثغرة:
عندما لا يتم فحص مدخلات البرنامج بعناية.
مثلا عندما يقوم المستخدم بكتابة اسمه في الموقع ثم يقوم الموقع بإظهار الإسم بدون فحص فماذا سيحدث عندما يتم إدخال إسم مستخدم بلغة برمجة HTML مثلا؟
لن يفرق المتصفح بين إسم المستخدم وبقية كود الصفحة وسيتعامل معه على انه كود في الصفحة مثله مثل باقي السطور، أي انه سيتم تنفيذ الأوامر التي أدخلها المستخدم بدون اي مشكلة!
الحماية:
1- فحص المدخلات:
وذلك بتطهير المدخلات من اي كود خبيث او محاولة لحقن كود في المدخلات.
2- التأكد من الترميز:
تأكد بأن ترميز الحروف في الصفحة هو ما يتطلبه (Character Encoding) في حالة الترميز صحيح سيتعرف المتصفح ما اذا كانت الحروف التي يتم عرضها يرمز اليها بشكل معين او لا.
3- فحص موقعك:
فحص موقعك والكشف عن ثغرات الـ XSS بإستخدام برامج متخصصه في ذلك مثل برنامج المشروع المشهور OWASP المسمى بـ OWASP Zap (مفتوح المصدر ومجاني أيضا)
4- تفعيل HTTPOnly:
هذا سينبه المتصفح لكي لايسمح لكود السكربت بقراءة الـCookies وبالتالي منع سرقتها.
5- جدار حماية WAF:
تنصيب جدار حماية ناري متخصص لبرامج الويب WAF. هذا سيكون بمثابة طبقة حماية اضافية تحمي من إستغلال ثغرات XSS في الموقع.
وفي النهاية اتمنى اني وصّلت لكم المعلومات بطريقة مرتبه وواضحه ♥️
وجاهز لاي استفسار 🙏🏻

جاري تحميل الاقتراحات...