Open Redirect پایه در پارامتر next/redirect_to
وقتی یک پارامتر URL مستقیماً برای ریدایرکت استفاده میشود، بدون بررسی اینکه مقصد در همان دامنه است یا نه.
بسیاری از سایتها بعد از لاگین، کاربر را به مسیری که در پارامتری مثل ?next=/dashboard آمده هدایت میکنند. اگر این پارامتر بدون بررسی مقصد (مثلاً فقط باید یک مسیر نسبی باشد) هر URL کامل را بپذیرد، مهاجم میتواند با یک لینک ظاهراً معتبر از سایت اصلی، قربانی را به یک سایت فیشینگ هدایت کند.
چرا خطرناک است با وجود severity نسبتاً پایین
چون لینک با دامنهی معتبر و اصلی شروع میشود، بسیاری از فیلترهای ایمیل/فیشینگ و حتی کاربران هوشیار هم به آن اعتماد میکنند.
راهحل
فقط مسیرهای نسبی (شروع با / و بدون //) پذیرفته شوند، یا مقصد در برابر یک allowlist دقیق از دامنههای داخلی بررسی شود.