1
02128428905

تحلیل آسیب پذیری Xss در سایت ویرگول

 

سلام خدمت تمامی کاربران عزیز تیم امنیتی اولترا

 

این مطلب توسط آقای میثم منصف نویسنده افتخاری تیم امنیتی اولترا نوشته شده است

 

چند وقتی بود با سایت ویرگول آشنا شده بودم دوست داشتم یه بررسی امنیتی روش انجام بدم متوجه شدم با فریمورک امن و قوی Laravel درست شده در نظر اول فکر نمیکردم آسیب پذیری داشته باشد اما بعد از کلی کند و کاو توانستم آسیب پذیری XSS Stored از سایت ویرگول virgool.io کشف کنم که خیلی هم خوشحال شدم به تیم ویرگول ایمیل زدم در پاسخ تشکر کردن و با کسب اجازه تیم ویرگول این مطلب رو انتشار دادم ، اگر داخل سایت ویرگول ثبت نام کنید میتوانید نوشته های خودتان را انتشار بدید من رفتم یک نوشته بنویسم گفتم اگر بتونم در این قسمت کد Java Script تزریق کنم چون تو دیتابیس ذخیره میشه اگر کاربر وارد صفحه مقاله بشه کد js اجرا میشه بعد خوب تمام اما به همین راحتی نبود با ویرایشگری که قرار داده بودند نتونستم چیزی تزریق کنم اما یه قسمتی داشت که می توانستید آدرس یک مدیا را از سایت دیگری تو صفحه درج کنید.

 

 

من آدرس خود سایت ویرگول رو درج کردم دیدم توی صفحه یک قسمتی اضافه شد. خوب به تصاویر پایین دقت کنید

 

 

من سوالی که برایم پیش آمد : این متن های که در صفحه اضافه شد از کجا آمده! رفتم داخل سایت یه view page source از سایت ویرگول گرفتم . meta تگ های که در صفحه بود نظرم رو جلب کرد دیدم یکسری تگ که برای The Open Graph protocol و برای شبکه های اجتماعی فیسبوک و غیره کاربرد دارد. که محتوای داخل این تگ ها را در صفحه اضافه میکند.

 

 

 

اگر به تصویر بالا نگاه کنید متوجه میشوید. خوب فکری به ذهنم خورد گفتم اگر داخل این تگ ها من کد HTML یا Java Script بنویسم چه اتفاقی رخ میده . خوب برای پیاده سازی این ایده رفتم یک سایت که فضای رایگان html میدهد رو تو گوگل پیدا کردم و یک حساب کاربری ایجاد کردم و شروع به ساختن یک صفحه html کردم و کدهای مد نظر رو به شکل زیر تو صفحه html ذخیره کردم .

 

 

من در تگ های متا گفتم هرکدام یک تگ h1 را با محتوای قرار دادم که ببینیم کدام تگ و محتوا کجای صفحه ویرگول تزریق میشه.

 

 

 

 

همانطور که در تصاویر بالا دیدید تگ های h1 و h4 از نظر محتوا تو صفحه تزریق شدند . بریم تو صفحه ی پیش نمایش دنبال کد تزریق شده بگردیم ببینیم چه خبر هست !

 

 

 

 

من روی صفحه پیش نویس یک F12 میزنم تا صفحه developer tools باز بشود بعد تگ h1 را انتخاب میکنم و بعد گزینه Edit as HTML رو میزنم ببنیم تو خروجی چه چیزی هست.

 

 

مانطور که در تصویر بالا می بینید تگ های h1 من بدون هیچ گونه فیلتری توی صفحه درج شد خوب اگر من تو صفحه html خودم تگ a با کد جاوا اسکریپت تزریق کنم چه اتفاث می افتد بیاید با هم تست کنیم .

 

 

خوب در تصویر بالا اگر نگاه کنید من یک صفحه دوم ساختم بخاطر اینکه ویرگول سیستم Caching داشت و زمانی که شما یک لینک رو قبلا اضافه میکنید دفعه بعد از سیستم Caching خودش لود میکنه پس تغییرات در صفحه اول اعمال نمی شود من تو کد payload خودم یک تگ a ایجاد کردم که کاربر با کلیک کردن روی لینک کد جاوا اسکریپت من اجرا میشود .

 

 

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

 

 

 

امیدوارم که از این مطلب لذت کافی رو برده باشید…

 

 

دیدگاه کاربران
  • tomy 12 آوریل 2020

    ببخشید این را میگویم ولی پشمااااااااااااااااااااااام

  • رامین 19 آوریل 2020

    جالب بود

ارسال دیدگاه

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