نوآموز

نوآموز

نوآموز

نوآموز

مقدمه

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

 

Cross-site Scripting یا XSS چیست؟

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

  • Persistant XSS یا Stored XSS
  • Reflected XSS
  • DOM-based XSS

حمله XSS به سه بازیگر نیاز دارد: وب سایت ، قربانی و هکر.

 

Cross-site Scripting یا XSS چگونه کار می کند؟

(Cross Site Scriptting (XSS به معنای ارسال و تزریق کد یا اسکریپت مخرب به مرورگر قربانی است که معمولاً با زبان های برنامه نویسی سمت کاربر مانند جاوا اسکریپت (Javascript) و HTML نوشته شده است. بنابراین ، برای اجرای JavaScript مخرب ، اولین قدم شناسایی اینکه کدام قسمت از صفحه وب مهیا XSS است ، می باشد.

 

آشنایی با چگونگی حملات XSS

 

زمانی که نفوذگر قسمت آسیب پذیر وب سایت را پیدا کرده و آن را به عنوان ورودی مخرب ارسال کند و کاربر (قربانی) از قسمت آلوده بازدید کند ، کد تزریق شده در مرورگر کاربر اجرا می شود. این بدین معنی است که هکر با موفقیت از SOP مرورگر عبور کرده است یک توضیح کوتاه ومختصر درمورد SOP بگیم ، Same Origin Policy به اختصار SOP، یک مفهوم امنیتی روی مرورگرهای مدرن است که فقط به اسکریپت‌هایی که منشا آنها همان صفحه وب است، اجازه اجرا می دهد

 

به عنوان مثال ، از اسکریپت ساده سمت سرور برای نمایش آخرین نظر در وب سایت استفاده می شود:

 

 

اسکریپت فوق به سادگی آخرین دیگاه یا نظر را از یک پایگاه داده نظرات چاپ می کند. نظر باید فقط از متن تشکیل شود ، اما در این حالت ، ورودی کاربر مستقیماً درج می شود. بنابراین ، مهاجم می تواند به راحتی نظری را که حاوی بارگیری مخرب است در تگ های <script>destroyEverything();</script> ارسال کرده و صدمات جدی وارد کند.

زمانی که کاربر پاسخ زیر را دریافت می کند به این معنی است که ()destroyEverything قابل اجرا است

 

 

Persistant XSS یا Stored XSS

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

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

حملات تزریق کد یا XSS چیست؟

 

1- هکر کدهای مخرب جاوا اسکریپت را در پایگاه داده وب سایت با ارائه یک فرم آسیب پذیر قرار می هد.
2- قربانی(کاربر) یک صفحه از وب سایت را درخواست می کند.
3-صفحه ای که کد های مخرب جاوا اسکریپت در گذاشته شده است توسط کاربر مشاهده و اجرا میشود
4-مرورگر قربانی اسکریپت مخرب را در داخل پاسخ اجرا می کند و کوکی های قربانی را به سرور هکر ارسال می کند.

 

حمله از نوع Reflected XSS

حمله Reflected XSS هنگامی رخ می دهد که JavaScript (رشته) مخرب به عنوان بخشی از درخواست قربانی به وب سایت ارسال شود. در نوع منعکس شده حمله ، به طور دائم ذخیره نمی شود ، اما کد مخرب به کاربر بازگردانده می شود. URL های جعلی یا درخواست یا پارامترهای HTTP. این نوع برنامه نویسی (cross-site (XSS معمولاً در حملات فیشینگ یا همان تله‌گذاری برای بدست آوردن اطلاعات قربانی استفاده میشود.

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

 

حملات DOM-based XSS

حمله XSS مبتنی بر DOM کمی متفاوت از دو روش قبلی XSS است ، اما می توان گفت که این یک نوع از XSS stored (persistent) و reflected XSS را نشان می دهد. DOM-based XSS جز حملات به سمت سرویس گیرنده است بنابراین ، فقط توسط مشتری پردازش می شود و به سرور ارسال نمیشود

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

 

پیشگیری در برار حملات XSS 

اسکنرها و ابزارهای زیادی وجود دارد که می توانند به ما در شناسایی آسیب پذیری های XSS کمک می کنند ، از جمله XSStrike – Advanced XSS Detection Suite یا به صورت آنلاین از وبسایت XSS Scanner

منبع پست

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی