آیا باید در مورد آسیب پزیری XSS نگران باشیم

XSS که مخفف (Cross site Scripting) است. یک آسیب  پذیر گسترده است که بر روی بسیاری از برنامه های وب تاثیر  می گذرد. خطر XSS به این صورت است که به هکرها و مهاجمان اجازه می دهد محتوایی را به یک وب سایت تزریق کنند و نحوه نمایش آن را تغییر دهد و همچنین مرورگر قربانی را مجبور خواهد کرد تا کدهای ارائه شده توسط مهاجمان را در زمان لود صفحه اجرا کنند.

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

تصور کنید شما در بخش wp-admin ورد پرس سایت خود هستید در صورتی که از پلاگین با آسیب  پذیری XSS استفاده کرده باشید زمانی که در هنگام ایجاد یک post جدید هستید و یا در حال استفاده از یک صفحه از سایت هستید XSS می تواند مرورگر را مجبور کند یک کاربر جدید ایجاد کند و یا اینکه یک پست را ویرایش  کند تا کد های خود را درون آن قرار دهد و یا اقداماتی شبیه این که می تواند در وب سایت شما اختلال ایجاد کند.

یک آسیب  پذیر XSS به هکر کمک می کند تا کنترل کامل بر مرور گرهای شما داشته باشد

XSS  آسیب پذیری از طریق تزریق :

هر وب سایت یا برنامه دارای چندین بخش لاگین می باشد که این بخش می تواند شامل فرم ها و URL های پویا و غیره  باشند.

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

در XSS هکرها کدهای خود را جایگزین کدهای صفحات وب پویا می کنند. این حمله اغلب زمانی صورت می گیرد سایتی جهت دریافت اطلاعات کاربران از Query String استفاده می کند، کدهای که جایگزین کد های صفحات پویا شده و بر روی کامپیوتر کاربر اجرا می شوند  می تواند اطلاعات با اهمیت موجود در کامپیوتر کاربر را به سرقت  ببرند که به این نوع از تزریق Cross site Scripting یا XSS گفته می شود. xss با استفاده از تزریق  کد در وب سایت اقداماتی را در مرورگر انجام می دهد. این عمل هم می تواند به صورت سایشی باشد یعنی به کاربر سایت ، حمله XSS را نشان دهد  و هم می تواند در پس زمینه و بدون اطلاع کاربر کارکند.

شاید ابتدایی ترین روش جهت ایجاد یک حمله XSS استفاده از تگ های ساده جهت ایجاد یک اسکریپت باشد که با استفاده از این تگ ،هکر متوجه خواهد شد که یک باگ در این صفحه وجود دارد و از طریق این باگ می تواند کد های خود را به داخل وب سایت شما تزریق کند. برای مثال با تگ زیر هکر می تواند یک بلوک جاوا اسکریپت را تعریف کند تا با فرخوانی توابع ، باعث ظاهر شدن عبارت “XSS VULNER ABILITY ” در سایت شود.

<script> alert (“THIS IS AV XSS VULERABILITY!!!”) </script>

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

انواع XSS

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

 آسیب  پذیری از نوع ذخیره شده یا Stored  :

آسیب پذیری ذخیره شده (Stored) زمانی اتفاق می افتد که یک اسکریپت به صورت پایدار روی سرور هدف ذخیره می شود. این ذخیره سازی روی دیتابیس، پست های مربوط به یک فرم، لاگ های مربوط به بازدیدکنندگان ، فیلد مربوط به نظرها و … انجام می شود. زمانی که قربانی درخواستی را به سرور ارسال می کند، سرور پاسخ را از قسمت ذخیره شده برای کاربر ارسال می کند، اسکریپت مخرب هم  یک بار بر روی سیستم قربانی اجرا می شود. XSS از نوع ذخیره شده با نام های پایدار یا persistent و I-Type  نیز شناخته می شوند.

آسیب  پذیری XSS از نوع بازتابی (Reflected):

آسیب  پذیری بازتابی یا  Reflected زمانی رخ می دهد که اسکریپت اینجکت شده توسط وب سرور، بازگردانده و بازتاب شود. این بازتاب می تواند در قالب پیام های خطا، نتایج جستجو یا هر پاسخ دیگری باشدکه برای مثال ا پاسخ شامل تمام و یا قسمتی از ورودی ارسال شده به سرور در زمان درخواست است. حمله ی بازتابی به وسیله ی راه های دیگری مثل یک ایمیل هم انجام خواهدشد ، برای مثال زمانی که هکر کاربر را به گونه ای فریب دهد که روی لینک آلوده کلیک کند، حمله با موفقیت انجام شده و داده ها به سمت هکر ارسال می شود و یا ممکن است کاربر به سایت آلوده ارجاع داده شود و در آن سایت، کدهایی از سایت آسیب  پذیر موجود باشد که بازتاب یا همان reflect  حمله، به مرورگر کاربر بازگردانده خواهد شد و مرورگر نیز بدون هیچ مشکلی کد را اجرا می کند، چرا که کدها از سروری  مورد اعتماد آمده است. حمله ی XSS از نوع بازتابی با نام های ناپایدار یا همان Persistent-Non و II-Type نیز شناخته می شود.

آسیب  پذیری DOM Based XSS

DOM based XSS که تحت عنوان type-0 XSS نیز شناخته می شود، این نوع از آسیب  پذیری در سال ۲۰۰۵ میلادی توسط amit klein معرفی شد، حمله ست که  در آن  payload از طریق تغییر DOM “environment” در مرورگر قربانی، اجرا می شود. به همین دلیل، در حالی که صفحه پاسخ HTTP  تغییر نمی کند، کد سمت client مربوط به صفحه، تحت تاثیر تغییرات رخداده در محیط DOM، به شکل متفاوتی اجرا می شود. درسال  ۲۰۰۵ تعداد بسیار زیادی از برنامه های تحت وب شناسایی شدند که  نسبت به حمله ی DOM-Based XSS آسیب  پذیربودند  و این درحالی است که این صفحات در مقابل سایر حملات استاندارد XSS مقاوم نبودند.

نتیجه :

نتیجه ی  آسیب  پذیری XSS صرف نظر از نوع آن یکسان و تفاوت آن ها صرفا در چگونگی رسیدن آن به سرور است. این فکر که سایت های صرفا خواندنی و حالت اخباری در برابر حملات جدی و تاثیرگذار XSS از نوع بازتابی در امان هستند ، اشتباه است. حمله ی XSS باعث بروز انواع مختلفی از مشکلات  برای کاربر نهایی  خواهد شد  و بازه ی این مشکلات  از اذیت و آزارهای معمولی تا مشکلات کامل جدی در حساب های کاربری می باشد.  بدترین نوع حمله ی XSS این است که به وسیله ی آن کوکی های نشست کاربر افشاء می شود و به وسیله ی آن هکر می تواند نشست را به سرقت ببرد و کنترل اکانت  کاربر را در دست گیرد. انواع خسارات دیگری که این حمله به بار می آورد عبارتست از: افشاسازی فایل های کاربر، نصب برنامه های تروجان، ریدایرکت کردن کاربر به سایت ها و یا صفحات دیگر و دستکاری محتوایی که به کاربر ارائه می شود.

 آیا باید در مورد آسیب پزیری XSS نگران باشیم

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *