دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۶
  • اردیبهشت

جلسه ۱۳ : بررسی اسکریپت نویسی و تاثیر آن در تست امنیت

  • دسته‌بندی‌ها :
جلسه ۱۳ : بررسی اسکریپت نویسی و تاثیر آن در تست امنیت
    • جزئیات
    • نوع محتواآموزشی

      سلام به همه پی وی لرنی های عزیز!
      به دوره آموزش تست امنیت Security Testing خوش آمدید.
      امروزه به صورت گسترده ای از اینترنت و دنیای وب استفاده می شود و جهان ما اکنون یک جهان آنلاین است که در آن بسیاری از مشاغل به سمت اینترنتی شدن پیش می روند. امروزه ما با پدیده های گسترده خرید و فروش در بستر اینترنت رو به رو هستیم؛ نمونه جهانی آن سایت آمازون است و نمونه ایرانی آن هم سایت دیجیکالا است.
      خطرات و تهدید های زیادی در اینترنت وجود دارد؛ از هکر هایی که سعی می کنند از طریق روش های گوناگون از جمله فیشینگ اطلاعات کارت بانکی شما را سرقت کنند تا بد افزار هایی که قصد اختلال در سیستم کامپیوتری شما را دارند و البته ویروس های کامپیوتری و تروجان ها و غیره و غیره.
      داده ها و اطلاعات کاربران و البته وبسایت ها ممکن است به سرقت برده شوند؛ مورد سوء استفاده قرار بگیرند و یا در فضای عمومی و بدون خواست صاحبان آن عرضه شوند. تست امنیت Security Testing امروزه مبحث داغ امنیت است تا آسودگی خیال افراد را در بستر اینترنت فراهم کند.
      در جلسه گذشته آموختیم که تأیید هویت شکسته چیست و چگونه می تواند امنیت کاربران را در دنیای وب به خطر بی اندازد.
      در این جلسه به تاثیر اسکریپت نویسی در تست امنیت بپردازیم.

      تاثیر اسکریپت نویسی در تست امنیت

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

      اجازه دهید با کمک نمودار ساده، عوامل تهدید، وکتورهای حمله، ضعف امنیتی، تأثیر فنی و تأثیرات تجاری این نقص را بهتر درک کنیم.

      بررسی عوامل تهدید کننده - تاثیر اسکریپت نویسی در تست امنیت

      بررسی عوامل تهدید کننده – تاثیر اسکریپت نویسی در تست امنیت

      آشنایی با انواع XSS

      • XSS ذخیره شده – Stored XSS
        XSS ذخیره شده به عنوان persistent XSS یا XSS مداوم نیز شناخته می شود. هنگامی که ورودی کاربر روی سرور هدف مانند پایگاه داده / فروم های مرتبط با پیام / بستر هایی که برای کامنت گذاری ایجاد شده اند و غیره ذخیره می شود آنگاه قربانی داده های ذخیره شده را از برنامه وب بازیابی می کند.
      • XSS معکوس – Reflected XSS
        XSS معکوس به عنوان XSS غیر مداوم نیز شناخته می شود و زمانی رخ می دهد که ورودی کاربر بلافاصله توسط یک برنامه وب در پیام خطا / نتیجه جستجو یا ورودی ارائه شده توسط کاربر به عنوان بخشی از درخواست و بدون ذخیره دائمی داده های کاربر ارائه می شود.
      • DOM based XSS
        DOM based XSS نوعی XSS است که منبع داده آن در DOM است، sink نیز در DOM قرار دارد و جریان داده هرگز مرورگر را ترک نمی کند.

      مثال

      برنامه از داده های غیرقابل اعتماد در ساخت و ساز بدون اعتبار استفاده می کند. در این شرایط کارکترهای خاص باید escape شوند.

      مثال : 

      مهاجم پارامتر query را در مرورگر خود تغییر می دهد.

      مثال : 

      Hands ON

      مرحله ۱ – وارد Webgoat شوید و به بخش (scripting cross-site (XSS بروید. بگذارید ما یک حمله متقابل سایت نگارش شده (XSS) را اجرا کنیم. در زیر تصویر این سناریو آورده شده است.

      ورود به بخش (scripting cross-site (XSS - تاثیر اسکریپت نویسی در تست امنیت

      ورود به بخش (scripting cross-site (XSS – تاثیر اسکریپت نویسی در تست امنیت

      مرحله ۲ – طبق سناریو ، بگذارید ما به عنوان Tom و با رمز “tom” وارد شویم، همانطور که در سناریو ذکر شده است. بر روی ‘view profile کلیک کرده و وارد حالت ویرایش شوید. از آنجا که Tom مهاجم است، اجازه دهید اسکریپت جاوا را در آن جعبه های ویرایش شده تزریق کنیم.

      مثال : 

      دریافت هشدار hacked - تاثیر اسکریپت نویسی در تست امنیت

      دریافت هشدار hacked – تاثیر اسکریپت نویسی در تست امنیت

      مرحله ۳ – به محض به روزرسانی ، Tom یک پیام هشدار با پیام “hacked” دریافت می کند، به این معنی که برنامه آسیب پذیر است.

      وارد شدن به عنوان (jerry (HR - تاثیر اسکریپت نویسی در تست امنیت

      وارد شدن به عنوان (jerry (HR – تاثیر اسکریپت نویسی در تست امنیت

      مرحله ۴ – اکنون طبق سناریو، باید به عنوان (jerry (HR وارد شده و بررسی کنیم که آیا jerry تحت تأثیر اسکریپت تزریق شده است یا خیر.

      تغییر view profile - تاثیر اسکریپت نویسی در تست امنیت

      تغییر view profile – تاثیر اسکریپت نویسی در تست امنیت

      مرحله ۵ – پس از ورود به عنوان Jerry، کاربر “Tom” را انتخاب کنید و مطابق شکل زیر “view profile” را کلیک کنید.

      مشاهده پروفایل Tom - تاثیر اسکریپت نویسی در تست امنیت

      مشاهده پروفایل Tom – تاثیر اسکریپت نویسی در تست امنیت

      حالا ضمن مشاهده پروفایل Tom از حساب Jerry، می توان همان کادر پیام را دریافت کرد.

      دریافت مجدد هشدار hacked - تاثیر اسکریپت نویسی در تست امنیت

      دریافت مجدد هشدار hacked – تاثیر اسکریپت نویسی در تست امنیت

      مرحله ۶ – این کادر پیام البته فقط یک پیام نمونه است و ما در حال آزمایش کردن هستیم اما مهاجم واقعی می تواند خیلی بیشتر از آنچه که ما انجام دادیم در دل حساب یک شخص نفوذ کند.

      مکانیسم های پیشگیرانه

      • توسعه دهندگان باید اطمینان حاصل کنند که از کلیه داده های غیرقابل اعتماد بر اساس متن HTML مانند CSS، JavaScript، attribute، body یا URL که به آن ها داده می شود ایمن هستند.
      • برای آن دسته از برنامه های کاربردی که به عنوان ورودی به کاراکترهای خاص نیاز دارند، قبل از پذیرفتن آنها به عنوان ورودی های معتبر، باید سازوکارهای معتبر قوی وجود داشته باشد.

      سخن پایانی

      در این جلسه به بررسی اسکریپت نویسی و تاثیر آن در تست امنیت پرداختیم؛ اسکریپت نویسی متقاطع (XSS) زمانی اتفاق می افتد که برنامه ای داده های غیرقابل اعتماد را می گیرد و بدون اعتبار آن را به کاربر (مرورگر) می فرستد.
      در جلسه آینده به Direct Object References می پردازیم.
      با پی وی لرن همراه باشید

      QR:  جلسه ۱۳ : بررسی اسکریپت نویسی و تاثیر آن در تست امنیت
      به اشتراک بگذارید