تنبيه JS أمثلة. تنبيه، موجه وتأكيد العمليات. تفاعل المستخدم في جافا سكريبت. ميزات XSS بناء على DOM

تعد البرمجة النصية InterSype (XSS) ثغرة أمنية لتطبيق التعليمات البرمجية القابلة للتنفيذ على جانب العميل (JavaScript) في صفحة الويب التي يتم إحضارها المستخدمين الآخرين.

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

يمكنك تذوق SPPLESS SCRIPT الخاص بك (لا يوجد شيء أسهل من كتابة البرامج النصية السيئة إلى PHP - وهذا يشارك في هذا). ولكن هناك بالفعل الكثير من الخيارات الجاهزة. على سبيل المثال، أقترح بدء التعارف مع Dojo و Owasp Mutillidae II. هناك مثال مماثل. في بيئة Dojo المستقلة، انتقل إلى المتصفح حسب المرجع: http: //localhost/mutillidae/index.php؟ صفحة \u003d إضافة إلى-الخاص بك blog.php

إذا دخل شخص ما من المستخدمين:

ستعرض صفحة الويب هذه:

مهلا! مثل موقعك.

وإذا دخل المستخدم هذا:

مهلا! مثل موقعك.

سيتم عرض ذلك مثل هذا:

المتصفحات تبقي مجموعة من ملفات تعريف الارتباط عدد كبير المواقع. كل موقع يمكن أن تحصل على ملفات تعريف الارتباط المحفوظة فقط لهم. على سبيل المثال، احتفظ موقع الويب examply.com ببعض ملفات تعريف الارتباط في متصفحك. أنت تعطل موقع الويب الخاص بالآخرين، لا يمكن لهذا الموقع (البرامج النصية العميلة والخادم) الوصول إلى ملفات تعريف الارتباط التي حفظها موقع الويب examply.com.

إذا كان الموقع examply.com عرضة للخدمة XSS، فهذا يعني أننا نستطيع بطريقة أو بأخرى لتنفيذ رمز JavaScript في ذلك، وسيتم تنفيذ هذا الرمز نيابة عن الموقع أولئك. سيتلقى هذا الرمز، على سبيل المثال، الوصول إلى موقع ملف تعريف الارتباط.

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

الرمز المضمن قادر على كل ما تستطيع جافا سكريبت، أي:

  • الوصول إلى ملفات تعريف الارتباط من الموقع المشاهد
  • يمكن أن تجعل أي تغييرات في مظهر خارجي الصفحات
  • الوصول إلى البورصة المخزن المؤقت
  • يمكن تطبيق البرامج على جافا سكريبت، على سبيل المثال، Loggers KI (معترض المفتاح دفعت)
  • لمس على لحوم البقر.
  • وإلخ.

أبسط مثال مع Cookiz:

فعلا، يحذر. يستخدم فقط للكشف عن XSS. البرامج الضارة الحقيقية حمولات الإجراءات المخفية. إنه يرتبط مخفيا بخادم دائم بعيد ونقل البيانات المسروقة عليه.

أنواع XSS.

الشيء الأكثر أهمية هو أنك بحاجة إلى فهم أنواع XSS ما يحدث:

  • مخزنة (ثابت)
  • ينعكس (غير دائم)

مثال دائم:

  • قدم المهاجم رسالة مشكلة خصيصا إلى دفتر الضيوف (تعليق، رسالة المنتدى، الملف الشخصي) الذي يتم تخزينه على الخادم، تم تحميله من الخادم في كل مرة يطلب المستخدمون عرض هذه الصفحة.
  • حصل المهاجم على الوصول إلى بيانات الخادم، على سبيل المثال، من خلال حقن SQLوقم بتنفيذ رمز JavaScript الضار إلى البيانات التي تم إصدارها للمستخدم (مع سجلات KI أو لحوم البقر).

عينة من غير دائم:

  • يحتوي الموقع على بحث، والذي، مع نتائج البحث، يعرض شيئا مثل "كنت تبحث عن: [سلسلة البحث]"، في حين أن البيانات غير تصفية بشكل صحيح. نظرا لأن هذه الصفحة يتم عرضها فقط من أجل الحصول على رابط لها، في حين أن المهاجم لن يرسل الرابط للمستخدمين الآخرين للموقع، فإن الهجوم لن يعمل. بدلا من إرسال إشارة إلى الضحية، يمكنك استخدام موضع برنامج نصي ضار على موقع محايد يزور الضحية.

لا تزال تبرز (بعض أنواع ضعف XSS غير دائم، يقول البعض إن هذه الأنواع يمكن أن تكون مجموعة متنوعة من XSS الثابت):

  • نموذج دوم

ميزات XSS بناء على DOM

إذا كنت بسيطة تماما، فيمكن ملاحظة الرمز الضار "العادي" غير الدائم XSS إذا قمت بفتح رمز HTML. على سبيل المثال، يتم تشكيل الرابط بهذه الطريقة:

http://example.com/search.php؟q\u003d "/\u003e

وعند فتح رمز HTML الأصلي، نرى شيئا مثل هذا: