یک پژوهشگر در ازای گزارش یک آسیبپذیری مهم که نفوذگران میتوانستند از آن برای دستیابی به آدرسهای ایمیل و گذرواژههای کاربران بهرهبرداری کنند، بیش از ۱۵ هزار دلار از پیپال دریافت کرده است.
در زمان تجزیه و تحلیل جریان اصلی احراز هویت پیپال، تشخیص داده شده است که این مسأله به قرار دادن توکنهای جعل درخواست بین وبگاهی (CSRF) پیپال و شناسهی نشست کاربر در یک فایل جاوااسکریپت مربوط است، بنابراین باعث میشود که نفوذگران بتوانند از طریق حملات XSSI آنها را بازیابی کنند.
پژوهشگر امنیتی، تشریح میکند که یک مبهمساز برای تصادفی کردن نام متغیرها در هر درخواست استفاده شده است، اما هنوز میتوان پیشبینی کرد که توکنها در کجا قرار دارند و سپس آنها را بازیابی کرد. بااینکه امکان استفاده از توکنهای CSRF و شناسهی نشست بهمنظور راهاندازی حملات نبود، این پژوهشگر روشی کشف کرد تا از آنها در یک حمله که چالش امنیتی استفادهشده توسط پیپال بهعنوان یک سازوکار محافظتی در برابر حملات کورکورانه را هدف قرار میدهد، استفاده کند.
پس از تلاشهای متعدد برای ورود، کاربر باید قبل از ادامه یک چالش reCAPTCHA را حل کند. صفحهای که به کاربر خدمات ارائه میدهد، چیزی جز یک Google CAPTCHA ندارد و در صورتی که این چالش با موفقیت حل شود، یک درخواست HTTP POST به /auth/validatecaptcha ارسال میشود.
پاسخ به درخواست اعتبارسنجی captcha به معنی معرفی مجدد کاربر به جریان احراز هویت است. به همین منظور، دارای فرمی است که خود آن همهی دادههای ارائهشده در آخرین درخواست ورود کاربر ازجمله ایمیل و گذرواژهی متن سادهی آنها را ارسال میکند.
یک مهاجم برای دستیابی به گواهینامهها، باید کاربر هدف را متقاعد کند تا قبل از ورود به حساب پیپال خود از یک وبگاه مخرب بازدید کند. این پژوهشگر کشف کرد که توکن CSRF و شناسهی نشست به همراه دو توکن دیگر در بدنهی درخواست وجود دارد و نتیجهگیری کرد که گواهینامههای پیپال قربانی در صورتیکه همهی توکنهای استفادهشده در درخواست شناختهشده باشند، قابل بازیابی هستند.
بیرسان کدی نوشت که از آسیبپذیری XSSI اولیه برای بازیابی توکنهای معتبر از نشست قربانی بهرهبرداری خواهد کرد، سپس یک حملهی کورکورانه برای ایجاد جریان چالش امنیتی شبیهسازی کرد.
این پژوهشگر تشریح میکند که هنگامی که قربانی با استفاده از همان مرورگر وارد پیپال میشود، گواهینامههای تصادفی ذخیرهشده توسط ایمیل و گذرواژهی خود کاربر جایگزین خواهد شد. مرحلهی آخر دست یابی به یک توکن reCAPTCHA جدید بود که پس از آن گواهینامههای متن ساده از نقطهی انتهایی /auth/validatecaptcha بازیابی و در صفحه نمایش داده میشود.
همان فرآیند آسیبپذیر در برخی صفحات پرداخت غیرمجاز استفاده شده است که موجب میشود که دادههای متن سادهی کارت اعتباری با استفاده از همان روش افشاء شود. بیرسان آسیبپذیری را در ۱۸ نوامبر از طریق HackerOne به پیپال گزارش داد و ۱۸ روز بعد تأیید شد و در ۱۱ دسامبر یک وصله برای آن منتشر شد. پیپال نیز در ازای کشف این آسیبپذیری ۱۵٬۳۰۰ دلار به بیرسان پاداش داد.
در این وصله، یک توکن CSRF اضافی توسط نقطهی انتهایی /auth/validatecaptcha درخواست میشود و این توکن بااستفاده از XSSI افشاء نمیشود. بیرسان معتقد است که در زمان طراحی سیستم با پیروی از یکی از قدیمیترین و مهمترین توصیهها مبنیبر عدم ذخیرهی گذرواژه به حالت متن ساده میتوان از همهی این موارد جلوگیری کرد.