سلام طبق معمول امیرمهدی هستم :)
آسیب پذیری HTML Injection در ویرگول پیدا کردم که به ۴۰۰ هزار تومن باگ بانتی رسید :)
اول از همه بگم آسیب پذیری بر طرف شده و من با اجازه ی تیم ویرگول این مطلب رو منتشر می کنم.
خب داستان این طوریه که من داشتم به ویرگول ور می رفتم و می دیدم چی به چیه که یه جایی دیدم اسما توی بخش نوتیفیکیشن ساده قرار گرفتن و چکم نمیشن :) ایده ی این که چه اتفاقی می تونه بیفته به ذهنم رسید و اکانت دیگه ساختم، و تستش کردم :) و بله تونستم html دلخواهم رو توی صفحه ی کاربر بنویسم :)
خب بزارید مرحله به مرحله ریپورتم رو پیش بریم. ۱۶ تا ایمیل. اول من به hi@virgool.io ایمیل زدم و مشکل رو گزارش دادم.همه ی ایمیل ها رو این جا گذاشتم :
سابجکت : گزارش مشکل امنیتی xss در ویرگول
سلام. یک آسیب پذیری XSS در ویرگول کشف کردم و قصد گزارشش رو دارم
جزئیات :
در قسمت نوتیفیکیشن کاربران ویرگول -> پس از لایک پست کاربر توسط کاربری دیگر، یک نوتیفیکشن برای کاربری که پستش لایک شده ارسال میشه. داخل این نوتیفیکیشن پیامی حاوی پست شما لایک شد وجود داره به اضافه ی اسم کسی که پست رو لایک کرده. در صورت این که این اسم html باشه، موقع دیدن بخش نوتیفیکیشن ها، کد html که همون اسم کاربر دوم هست به کاربر نمایش داده میشه. یعنی کسی می تونه در بخش نامش کد html بنویسه و پست بقیه رو لایک کنه تا کدش به بقیه نمایش داده بشه :). ممنون میشم پس از رفع این مشکل اجازه بدید که جزئیات آسیب پذیری را در خود ویرگول بنویسم. همچنین در صورت داشتن بانتی هم خوشحال میشم :)
جواب ویرگول :
سلام امیر مهدی جان
وقت بخیر
با تشکر از شما بابت گزارش این موضوع، این موضوع را به تیم امنیت ویرگول اعلام کردیم و آن را بررسی کردند. دوستان هیچ خطایی در این بخش پیدا نکردهاند. تمام اسمهای کاربران به شکلی در صفحه رندر میشود که کد XSS در آن اجرا نمیشود.
از شما میخواهیم یک ویدیو از این باگ برای ما ضبط کنید و برای ما ارسال کنید.
همچنین لازم به توضیح است که باگهای امنیتی که توسط کاربران به ویرگول گزارش میشود همگی شامل باگ بانتی هستند و شما با اعلام آن میتوانید از جایزهی آن بهرهمند شوید.
باز هم از شما بابت بهتر شدنِ ویرگول ممنونیم.
با تشکر
تیم ویرگول
من :
ممنونم. بله ارسال خواهم کرد
من ۴۵ دقیقه بعد:
سلام ویدیو رو ضبط کردم و توی فایل زیپ پیوست شده است. توی ویدیو آسیب پذیری نمایش داده شده. لطفا بعد از تایید آسیب پذیری من رو مطلع کنید. ممنونم.
ویدیو( آپدیت : ویدیو در دوران جاهلیت و بچگی ضبط شده :) نخندید :)
ویرگول :
سلام امیر جان
وقت بخیر
با تشکر از شما. این ویدیو برای تیم فنی ارسال شده و در حال بررسی است.
در طی روزهای آینده با شما مجددا در ارتباط خواهیم بود.
با تشکر
تیم ویرگول
من :
ممنونم. منتظرم
هفته ی بعد من :
سلام. آسیب پذیری مورد تایید قرار گرفت و آیا بر طرف شد؟ گفته بودید اطلاع میدید. متاسفانه من تا الان ایمیلی دریافت نکردم.
ویرگول :
سلام امیرمهدی جان
وقت بخیر
همانطور که شما فرمودید، در بخش نوتیفیکیشنها امکان لینک دادنِ دستی به سایت ویرگول یا سایر سایتها فراهم بود اما خوشبختانه به دلیل زیرساختِ ورودِ اطلاعات ویرگول که در تمامِ فرمها مکانیزم چک کردنِ XSS پیادهسازی شده است، امکان اجرای اسکریپت در این بخش وجود نداشته است.
باز هم با تشکر از شما؛ موضوع اعلام شده به صورت موقت برطرف گردیده است اما در آپدیتِ انتهای هفته به صورتِ کامل فیکس خواهد شد.
از شما درخواست میکنیم در روز شنبه یک مرتبه دیگر این مشکل را بررسی کنید و اگر باز هم مشکلی وجود داشت به ما اعلام کنید.
همچنین شماره شبای حساب بانکی خود را نیز برای ما ارسال کنید.
با تشکر
تیم ویرگول
من js رو تست نکردم. و این جا بود که تیم ویرگول به من گفت آسیب پذیری XSS نیست و گویا html injection هست.
من :
سلام. بله چک خواهم کرد. در مورد بانتی لطفا مبلغ رو بفرمایید.
ویرگول :
سلام وقت بخیر مبلغ پرداختی، فردا و پس از هماهنگی با تیم فنی ویرگول مشخص میشود. با تشکرتیم ویرگول
من :
سلام. لطفا وقتی مشخص شد اطلاع بدید
پنج روز بعد : من
سلام. قرار بود ۴ روز پیش مبلغ بانتی رو اعلام کنید. فکر می کنم فراموش کردید :). اگر بفرمایید ممنون میشم.
ویرگول :
سلام امیر جان
وقت بخیر
لطفا شماره شبای حساب خود را به ما اعلام کنید. مبلغی که به عنوانِ بانتی برای شما واریز خواهد شد مبلغ ۴۰۰,۰۰۰ تومان میباشد.
با تشکر
تیم ویرگول
من :
سلام ممنونم. IR-۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰
من :
لطفا بعد از پرداخت اطلاع بدید. ممنون.
من ۵ روز بعد :
سلام. من ایمیلی راجع به واریز از سمت شما دریافت نکردم. مبلغ واریز شده؟
ویرگول :
سلام امیر مهدی جان
وقت بخیر
هزینهی اعلام شده در روز شنبه، ۵ بهمن به حساب اعلام شده واریز گردیده است
یک فایل پی دی اف هم اینجا بود که فاکتور بود :)
با تشکر
تیم ویرگول
فیلم اضافه شد
ممنون که تا این جا خوندید و امیدوارم ریپورت آسیب پذیری و دریافت بانتی به سبک یک نوب در امنیت رو دیده باشید :))