در حال بارگذاری...
تست آسیبپذیری تغییر مسیر سمت کلاینت (Client-side URL Redirect) که در آن مهاجم میتواند کاربر را به URL مخرب هدایت کند.
اهداف این درس
تغییر مسیر سمت کلاینت زمانی رخ میدهد که برنامه وب از دادههای کاربر برای هدایت به URL استفاده کند. مهاجم میتواند کاربر را به سایت مخرب هدایت کند.
آسیبپذیری که به مهاجم اجازه میدهد کاربر را از طریق سایت معتبر به سایت مخرب هدایت کند.
| تابع | خطر | مثال |
|---|---|---|
| location.href | بالا | location.href=url |
| window.location | بالا | window.location=url |
| location.replace() | بالا | location.replace(url) |
| window.open() | متوسط | window.open(url) |
پارامترهایی مثل redirect, return, url, next, continue و goto را شناسایی کنید.
1// URL مخرب2http://target.com/redirect?url=http://attacker.com34// دور زدن فیلتر5http://target.com/redirect?url=//attacker.com6http://target.com/redirect?url=/\attacker.com7http://target.com/redirect?url=http://target.com@attacker.comهشدار
Open Redirect میتواند برای فیشینگ، دور زدن OAuth و سرقت توکن استفاده شود.
توصیه عملی
به جای URL مستقیم، از شناسههای داخلی برای redirect استفاده کنید.
هر URL قابل کنترل توسط کاربر باید اعتبارسنجی شود.
لیست سفید مؤثرتر از لیست سیاه است.
تغییر مسیر میتواند برای فیشینگ استفاده شود.
location.href و window.location خطرناک هستند.
کدام پارامتر معمولاً برای تغییر مسیر استفاده میشود؟
Open Redirect چیست؟
Open Redirect آسیبپذیری است که به مهاجم اجازه میدهد کاربر را از طریق سایت معتبر به سایت مخرب هدایت کند.
چرا Open Redirect خطرناک است؟
زیرا مهاجم میتواند از اعتبار سایت معتبر برای فیشینگ استفاده کند.