دور زدن Allowlist دامنه با ترفند @ (Userinfo) در Open Redirect
چگونه بخش کاربری (userinfo) یک URL میتواند یک بررسی سادهی "شامل دامنهی مجاز" را فریب دهد.
طبق استاندارد URL، بخش قبل از @ اطلاعات کاربری (userinfo) است و بخش بعد از آن، میزبان واقعی. اگر بررسی allowlist فقط چک کند که رشتهی "trusted-site.test" در URL وجود دارد، یک URL مثل https://trusted-site.test@evil-attacker.test/ این بررسی ساده را رد میکند، در حالی که میزبان واقعی evil-attacker.test است.
نحوهی شناسایی
- تمام تکنیکهای استاندارد دور زدن allowlist (userinfo، زیردامنهی ساختگی، بکاسلش، انکدینگ) را روی هر پارامتر redirect تست کنید.
راهحل
Parse کامل URL با یک کتابخانهی استاندارد و بررسی دقیق فیلد host (نه یک contains ساده روی رشتهی کامل URL).