Cross Site Scripting- XSS - Part1

با سلام خدمت دوستان گرامی.

امروز میخوایم یکی از شایعترین و خطرناکترین حملاتی که به برنامه های وب میشه یعنی  Cross Site Scripting یا همان XSS را مورد بررسی قرار بدیم. در قسمت اول از این موضوع یک مقدمه و تاریخچه را میگم و بعدش میریم سراغ مباحث جدی تر. اگر با تعریف و نحوه عملکرد XSS آشنایی دارید میتونید از قسمتهای بعدی شروع کنید.

 مقدمه:

در حوزه امنیتِ نرم افزار شواهد متعددی بیانگر این میباشد که در سالهای اخیر تمرکز حملات هکرها از Server-Side به Client-Side تغییر یافته است. در حملات Server-Side مانند SQL Injection متدولوژی حمله بر اساس ارتباط با Server از طریق روشهای نامتعارف و غیرمنتظره برای بدست آوردن دسترسیهای غیرمجاز به داده ها و یا انجام عملیات بدون مجوز میباشد اما در حملات Client-Side هدف اولیه مهاجم، بقیه کاربران برنامه وب میباشد. در این نوع حملات اهدافی مانند دسترسی به  اطلاعات شخصی کاربران  یا دزدیدن Session کاربران و ... مورد نظر میباشند.

یکی از رایج ترین حملات Client-Side حملات XSS میباشد. بر طبق گزارش WhiteHatSecurity در سال 2011،  XSS متداولترین آسیب پذیری در وبسایتها میباشد که در 55%سایتها شناسایی و کشف شده است. حتی نامهای بزرگی چون گوگل و یاهو و مایکروسافت نیز از این نوع حملات در امان نبوده اند. درOWASP Top 10  به عنوان دومین تهدید امنیتی برای برنامه های وب آورده شده است.

 تاریخچه

اولین حملات XSS در سالهای پایانی دهه 90 در دوران اولیه و رشد صفحات وب دینامیک آغاز گردید. در سال 2000 اولین مقالاتی که این حمله را معرفی میکردند توسط مایکروسافت و با همکاری (Computer Emergency Response Team) CERT در اینترنت انتشار یافت. تاکنون حملات زیادی با استفاده از XSS انجام گرفته است که از جمله مهمترین آنها میتوان به موارد زیر اشاره نمود:

 

  • در سال 2005 یک کرم اینترنتی با نام Samy  با استفاده از آسیب پذیری XSS در سایت MySpace.com که یک شبکه اجتماعی میباشد پروفایل بیشتر از یک میلیون کاربر را در عرض 24 ساعت آلوده ساخت.
  • در سال 2008 یک آسیب پذیری XSS در سرویس Spreadsheet گوگل توسط Bill Rios کشف گردید که توسط آن هکرها میتوانستند از طریق این سرویس به دیگر سرویسهای گوگل مانند Gmail و Code و .. دسترسی پیدا کنند.
  • در نوامبر سال 2012 هکرها با استفاده از مشکل XSS در سایت یاهو قادر به خواندن ایمیل کاربران و حتی فرستادن ایمیل از اکانت کاربران برای بقیه بودند.

 تعریف XSS

Cross Site Scripting  یا به اختصار  XSS، یک آسیب پذیری در برنامه های وب میباشد که از طریق آن مهاجم قادر به تزریق کدهای اسکریپت Client-Side به صفحات وب و اجرای آنها داخل Browser کاربران برنامه میباشد. تزریق و اجرای اسکریپتِ مخرب زمانی اتفاق می افتد که برنامه اطلاعاتی را از کاربر (و یا سایر منابع نامطمئن) به عنوان ورودی میگیرد و سپس بدون اینکه آن اطلاعات را اعتبار سنجی نماید به عنوان خروجی در یک صفحه وب نمایش میدهد. در یک نمونه از روشهای بکارگیری XSS، مهاجم به جای اطلاعات معتبر، اسکریپت مخرب را وارد مینماید تا در زمانی که کاربران به آن صفحه وب مراجعه میکنند با اجرای آن در Browser کاربران ، به اهداف مورد نظر خود از جمله دسترسی به اطلاعات شخصی دست پیدا کند.کدهای اسکریپت معمولا به زبان JavaScript میباشند اما سایر زبانهای اسکریپتی Client-Side مانند VBScript, ActionScript و ... نیز میتوانند مورد استفاده قرار گیرند.

یک نمونه از XSS:

وب سایت فرضی  http://www.victim.com   را در نظر بگیرید که هکر ما قصد دارد با استفاده از XSS اطلاعات کاربران را سرقت نماید. اولین قدم پیدا کردن جاهایی از وب سایت میباشد که اطلاعات دریافتی از کاربر پس از ارسال به سرور به روی صفحه وب برگردانده شده و نمایش داده میشوند. به عنوان نمونه ای از این نوع صفحات میتوان به صفحه جستجو اشاره نمود. در این وب سایت یک صفحه جستجوی ساده وجود دارد که با وارد کردن عبارت IKCO در فیلد جستجو و کلیک دکمه جستجو عبارت Security مطابق شکل زیر در دو جای صفحه، نمایش داده میشود.

/ 0 نظر / 58 بازدید