ماهي ثغرة XSS ؟
التصنيف | مقالات وتدوينات |
وقت النشر |
2022/09/05
|
الردود |
0
|
ماهي ثغرة XSS؟
تعد XSS من أشهر الهجمات على الويب والتي تتم عبر حقن موقعك بسكريبت يقوم بتنفيذ أوامر خبيثة على حواسيب الزوار، أي أن موقعك يتحول إلى وسيلة لاصطياد الضحايا عبر سكريبت يزرعه المخترق في موقعك.
في XSS لا يستهدف المخترق موقعك بدرجة أولى، وإنما يستعمله كجسر للعبور إلى الضحايا الذين يتصفحونه، حيث يستغل ثغرة في موقعك يتسلل من خلالها إلى زوار موقعك للهجوم عليهم.
ثغرة XSS هي ثغرة تسمح للمخترق بزرع أو حقن سكريبت بأي لغة يدعمها المتصفح الذي يستعمله زائر موقعك، وغالبًا ما يكون هذا السكريبت بلغةجافاسكريبت، وعند تصفح الموقع يتم تنفيذ هذا السكريبت مما يهدد الزائر.
كيف تعمل XSS؟
أولًا في هجوم XSS هناك ثلاثة فاعلين وهم كالتالي:
- الضحية وهو زائر موقعك
- الوسيلة أو الجسر وهو موقعك نفسه
- ثم المخترق وهو الذي يستغل موقعك للإيقاع بالزوار
وفي هجوم XSS يقوم المخترق بإستغلال إحدى طرق إدخال البيانات إلى الموقع، وليكن مثلًا عبر حقول إدخال النص Input Text Fields، فيرسل بيانات على شكل سكريبت، بعد ذلك يتم تنفيذ هذا السكريبت على متصفح الزائر، وتختلف هجمات XSS بإختلاف طريقة التعامل مع السكريبت المحقون، إما أن يُخزن في قاعدة بيانات ثم ينفذ عند إستدعائه، وإما أن يُنفذ مباشرة دون أن يُحفظ عبر دمجه في رابط معين.
ماهي أنواع XSS؟
توجد ثلاثة أنواع من هجمات XSS جميعها قائمة على نفس المبدأ المتمثل في إستغلال موقع عبر إرسال سكريبت يتم تنفيذه على مستوى متصفح الزائر.
وهذه الأنواع الثلاثة من أنواع XSS كما يلي:
• Stored XSS وتسمى كذلك Persistent XSS: وتحدث هذه الثغرة حينما يقوم المخترق بإستغلال أحد مدخلات الموقع فيقوم بإرسال سكريبت يتم تخزينه على مستوى سيرفر الموقع وغالبًا في قاعدة البيانات Database، كأن يرسل السكريبت من مربع كتابة التعليقات في الموقع، أو على شكل رسالة، أو من أي مكان في الموقع يسمح بتخزين القيم في قاعدة البيانات، وحينما يأتي زائر ليستعرض الصفحة التي تحتوي على القيم القادمة من قاعدة البيانات يتم تنفيذ هذا السكريبت.
على سبيل المثال قمت ببرمجة مدونة Blog من أجل نشر المقالات عليها، في إحدى مقالاتك دخل المخترق وبدل أن يكتب لك تعليقًا قام بكتابةسكريبت، هذا السكريبت سيتم تخزينه في قاعدة البيانات، وبالتالي حينما سيأتي زائر ما ليستعرض مقالتك سيتم تحميل التعليقات من قاعدةالبيانات ومعها التعليق الملغوم.
• Reflected XSS وتسمى كذلك Non-persistent XSS، وتحدث حينما يستغل المخترق إحدى مدخلات الموقع دون الحاجة إلى تخزين السكريبت في قاعدة البيانات، فيقوم بإرسال رابط الموقع مدموجًا بسكريبت ملغوم إلى الضحية عبر إيميل مثلًا، أو من خلال نشر هذا الرابط على موقع ما أو على مواقع التواصل الإجتماعي، وحينما يضغط الضحية على الرابط سيذهب به إلى الموقع وسيتم تنفيذ السكريبت المدمج معه وبالتالي سيحصل المخترق على ما يشاء، إما عبر سرقة Cookies أو من خلال KeyLogging أو القيام بعمليات أخرى.
• Dom-based XSS: وهو شبيه جدًا بالنوع Reflected XSS، غير أنه يتركّز بالأساس على التحكم في Dom الخاص بالصفحة عبر تنفيذ سكريبت مكان إرسال قيمة معينة.
كيف تستطيع جافا سكريبت التأثير على بيانات الزائر؟
تنفيذ جافاسكريبت على متصفح الزائر لا يشكل أي خطر على الإطلاق ماعدا ما سأذكره لاحقًا ، لأن جافاسكريبت تشتغل في بيئة محدودة الصلاحيات تمنعها من الوصول إلى ملفات المستخدم وإلى نظام التشغيل.
لكن تأتي خطورة جافاسكريبت من قدرتها على الوصول إلى بعض بيانات المستخدم الحساسة كـ Cookies، ومن قدرتها على إرسال HTTP Requests لمحتوى معين إلى وجهة معينة من خلال أجاكس أي تستطيع إرسال البيانات إلى السرفر، وكذلك من قدرتها على تعديل HTML الخاص بالصفحة التي ينفذ عليها سكريبت بسبب DOM methods.
هنا تتجلى الخطورة في تنفيذ أوامر جافاسكريبت على متصفح الزائر، بحيث يكفي تنفيذ أمر document.cookies للحصول على Cookie المرتبط بالموقع ومن ثم إرساله إلى السرفر الخاص بالمخترق من أجل العثور على بعض المعلومات الحساسة مثل معرف Session ID.
أو من خلال تسجيل الحروف Keylogging بحيث يتم قنص الحدث الخاص بالضغط على أزرار لوحة المفاتيح وتسجيل كل ما يتم كتابته وإرساله بعد ذلك إلى سرفر المخترق وقد تشمل النصوص المكتوبة كلمات السر وأرقام بطاقة الائتمان وغيرها..
كما يمكن للمخترق أن يغير DOM الخاص بالصفحة من خلال إضافة فورم إلى الموقع ويضع في action attribute وجهة الإرسال وبالتالي يمكنه إستغلال هذا الأمر في عملية Phishing عبر دفع المستخدم إلى إدخال بعض المعلومات الحساسة وهو يظن أنه يدخلها في الموقع وفي الحقيقة سيتم إرسالها إلى سيرفر المخترق.
المصدر:https://www.mobarmijoun.com/2017/09/xss.html?m=1
التعليقات (0)
لم يتم إضافة ردود حتى الآن...