شما با یک چالش امنیت وب در یک سامانه سازمانی به نام Lumina روبرو هستید که مکانیزم احراز هویت آن مبتنی بر Magic Link (لینک یکبارمصرف) است.
در این سناریو، کاربر برای ورود رمز عبور وارد نمیکند و بهجای آن، جریان ورود از طریق تولید یک لینک امن و ادامهی فرآیند در مرورگر انجام میشود.
هدف چالش، ارزیابی این است که آیا این جریان ورود در برابر دستکاری مقصد ادامهی احراز هویت و سوءاستفاده از مسیرهای بازگشت (Redirect) مقاوم طراحی شده است یا خیر.
در طول چالش، باید با رویکردی تحلیلی، درخواستهای شبکه مرتبط با تولید لینک ورود را بررسی کنید و مشخص کنید آیا پارامترهایی مانند redirect/continue URL در سمت سرور بهدرستی اعتبارسنجی و محدود (Allowlist) میشوند یا امکان کنترل آنها وجود دارد.
تمرکز اصلی روی این است که آیا برنامه اجازه میدهد مقصد ادامهی جریان ورود به دامنهای خارج از دامنه اصلی سرویس تغییر کند؛ موضوعی که در صورت ضعف اعتبارسنجی، میتواند زمینهساز Open Redirect در فرآیند احراز هویت یا حتی نشت توکنهای ورود شود.
در گام بعد، از یک سرویس کمکی برای ثبت و مشاهدهی Callbackهای مرورگر استفاده میشود تا مشخص گردد آیا دادههای حساس مرتبط با ورود (مانند شناسهها/توکنهای موقت و مقادیر ضد-CSRF) ممکن است به مقصدی خارج از کنترل برنامه منتقل شوند یا خیر.
سپس ارزیابی میکنید که آیا این دادهها قابلیت استفاده مجدد در دامنه اصلی را دارند و آیا میتوان با آنها جریان ورود را تکمیل کرد یا مکانیزمهای حفاظتی (مانند bind شدن توکن به دامنه، یکبارمصرف بودن واقعی، TTL کوتاه، و بررسیهای اضافی) مانع سوءاستفاده میشوند.
در نهایت، خروجی مورد انتظار این چالش ارائهی یک جمعبندی فنی و قابل استناد از وضعیت امنیت جریان Magic Link است:
از نحوه تولید لینک و مدیریت مقصد بازگشت گرفته تا کنترلهای اعتبارسنجی ورودی و ریسکهای احتمالی مانند Account Takeover در صورت نشت یا بازپخش توکن.
این سناریو بهطور خاص توانایی شما را در تحلیل احراز هویت بدون پسورد، بررسی پارامترهای حساس و استنتاج ریسک از روی رفتار واقعی برنامه میسنجد.
نکته: قبل از شروع، لازم است دامنه luminahq.local و relay-luminahq.local را به آدرس IP ماشین هدف در فایل etc/hosts/ سیستم خود نگاشت کنید تا دسترسی به سرویس ممکن شود.
لینک رایت آپی که این چالش بر اساس آن طراحی شده است:
https://medium.com/%40mrx_w_/how-i-turned-a-magic-link-feature-into-account-takeover-0745dcd30e96
این چالش توسط PingQueen طراحی شده است.