حملات اسکریپت بین سایتی (XSS) چیست؟

حملات XSS ، نوعی حمله سایبری است که در اثر یک آسیب پذیری امنیتی وب پیش می آید. درحملات XSS تعاملات کاربران با اپلیکیشن آسیب پذیر توسط مهاجم به خطر می افتد. آسیب پذیری امنیتی به مهاجم اجازه می دهد تا سیاست مبدا یکسانی را که برای جداسازی وب سایت های مختلف از یکدیگر طراحی شده است را دور بزند.



اسکریپت های مخرب بین سایتی معمولاً به مهاجم این امکان را می‌دهند که خود را به عنوان یک کاربر قربانی درآورد، هر اقدامی را که کاربر قادر به انجام آن است انجام دهد و به هر یک از داده‌های کاربر دسترسی پیدا کند. اگر کاربر قربانی دسترسی ممتازی به برنامه داشته باشد، ممکن است مهاجم بتواند کنترل کاملی بر تمام عملکردها و داده های برنامه داشته باشد.معمولاً مهاجمین در این نوع از حملات کاربران را ترغیب به کلیک بر روی یک لینک کرده و سپس کوکی های سشن کاربر را کپی کرده و داده های آنها را سرقت می کند.

XSS چگونه کار می کند؟

برای اجرای موفق یک حمله XSS ، مهاجم باید یک نقطه ضعف یا نفوذ درون وب اپلیکیشن پیدا کند و سپس از طریق آن اسکریپت مخرب خود را درون سرور آن تزریق کند. مهاجم با دستکاری یک وب سایت آسیب پذیر کد جاوا اسکریپت مخرب را به طرف کاربران سوق میدهد. هنگامی که کد مخرب در داخل مرورگر قربانی اجرا می شود، مهاجم می تواند به طور کامل تعامل آنها با برنامه را به خطر بیندازد.



انواع حملات XSS چیست؟

سه نوع اصلی از حملات XSS وجود دارد :

  • Reflected XSS:

Reflected XSS ساده ترین نوع اسکریپت نویسی بین سایتی است. زمانی ایجاد می‌شود که یک برنامه داده‌ها را در یک درخواست HTTP دریافت می‌کند و آن داده‌ها را در پاسخ فوری به روشی ناامن شامل می‌شود.

  • Stored XSS :

XSS ذخیره شده (همچنین به عنوان XSS دائمی یا مرتبه دوم شناخته می‌شود) زمانی ایجاد می‌شود که یک برنامه داده‌ها را از یک منبع نامعتبر دریافت می‌کند و آن داده‌ها را در پاسخ‌های HTTP بعدی خود به روشی ناامن شامل می‌شود. حمله Stored xss ،  صدمه شدیدتری وارد می کند. این حمله زمانی رخ می دهد که یک اسکریپت مخرب به طور مستقیم درون یک وب اپلیکیشن تزریق می شود.

داده های مورد نظر ممکن است از طریق درخواست های HTTP به برنامه ارسال شوند. به عنوان مثال، نظرات در مورد یک پست وبلاگ، نام مستعار کاربر در اتاق گفتگو، یا جزئیات تماس در مورد سفارش مشتری. در موارد دیگر، داده‌ها ممکن است از منابع غیرقابل اعتماد دیگری به دست آیند. به عنوان مثال، یک برنامه ایمیل وب که پیام های دریافت شده از طریق SMTP را نمایش می دهد، یک برنامه بازاریابی که پست های رسانه های اجتماعی را نمایش می دهد، یا یک برنامه نظارت بر شبکه که داده های بسته را از ترافیک شبکه نمایش می دهد.

  • DOM-based XSS :

XSS مبتنی بر DOM (همچنین به عنوان DOM XSS نیز شناخته می‌شود) ، زمانی ایجاد می‌شود که یک برنامه حاوی جاوا اسکریپت سمت سرویس گیرنده باشد و بدین ترتیب داده‌ها را از یک منبع نامعتبر به روشی ناامن ، معمولاً با نوشتن داده‌ها در DOM پردازش می‌کند. در DOM-based XSS آسیب‌پذیری در کد سمت کلاینت به جای کد سمت سرور وجود دارد.

هدف حمله XSS چیست ؟

مهاجمی که اکسپلویت آسیب‌پذیری اسکریپت بین سایتی را انجام می دهد ، معمولاً به توانایی های زیر دست می یابد:

  • جعل هویت یا جا زدن به عنوان کاربر قربانی.
  • اعمال هر اقدامی که کاربر قادر به انجام آن است .
  • دیدن هر داده ای که کاربر می تواند به آن دسترسی داشته باشد .
  • ضبط اطلاعات ورود کاربر .
  • تخریب مجازی وب سایت .
  • تزریق قابلیت های تروجان به وب سایت .


تأثیر واقعی یک حمله XSS به طور کلی به ماهیت برنامه، عملکرد و داده های آن و وضعیت کاربر در معرض خطر بستگی دارد. مثلا: در یک برنامه بروشور افزار، که در آن همه کاربران ناشناس هستند و همه اطلاعات عمومی هستند، تأثیر اغلب حداقل خواهد بود.
در برنامه‌ای که داده‌های حساسی مانند تراکنش‌های بانکی، ایمیل‌ها یا سوابق مراقبت‌های بهداشتی را در خود نگهداری می‌کند، معمولاً تأثیر آن جدی خواهد بود.
اگر کاربر آسیب‌دیده دارای امتیازات بالاتری در برنامه باشد، تأثیر آن به طور کلی بسیار مهم خواهد بود و به مهاجم اجازه می‌دهد تا کنترل کامل برنامه آسیب‌پذیر را در دست بگیرد و همه کاربران و داده‌های آن‌ها را در معرض خطر قرار دهد.