24
March 15, 2024•450 words
Test Path Confusion (fa-IR)
آزمایش سردرگمی مسیر (فارسی)
شناسه |
---|
WSTG-CONF-13 |
خلاصه
پیکربندی مناسب مسیرهای برنامه مهم است زیرا، اگر مسیرها به درستی پیکربندی نشده باشند، به مهاجم اجازه میدهند تا با استفاده از این پیکربندی نادرست، از آسیبپذیریهای دیگر در مراحل بعدی سوء استفاده کند.
به عنوان مثال، اگر مسیرها به درستی پیکربندی نشده باشند و هدف نیز از CDN استفاده کند، مهاجم می تواند از این پیکربندی نادرست برای اجرای حملات فریب کش وب (Web Cache Deception) استفاده کند.
در نتیجه، برای جلوگیری از حملات دیگر، این پیکربندی باید توسط آزمایش کننده ارزیابی شود.
اهداف آزمایش
- مطمئن شوید که مسیرهای برنامه به درستی پیکربندی شده اند.
چگونه آزمایش کنیم
آزمایش جعبه سیاه (Black-Box Testing)
در سناریوی آزمایش جعبه سیاه، آزمایش کننده باید تمام مسیرهای موجود را با مسیرهایی که وجود ندارند جایگزین کند و سپس رفتار و کد وضعیت هدف را بررسی کند.
به عنوان مثال، مسیری در برنامه وجود دارد که داشبورد است و میزان موجودی حساب کاربر (پول، اعتبار بازی و غیره) را نشان می دهد.
فرض کنید مسیر این است https://example.com/user/dashboard
، آزمایشکننده باید حالتهای مختلفی را که توسعهدهنده ممکن است برای این مسیر در نظر گرفته باشد، آزمایش کند. برای آسیبپذیریهای فریب کش وب (Web Cache Deception)، تحلیلگر باید مسیری را در نظر بگیرد، مثلاً https:// example.com/user/dashboard/non.js
اگر اطلاعات داشبورد قابل مشاهده است، و هدف از CDN (یا حافظه پنهان وب دیگر) استفاده میکند، سپس حملات فریب کش وب احتمالاً قابل اجرا هستند.
آزمایش جعبه سفید (White-Box Testing)
پیکربندی مسیریابی برنامه را بررسی کنید، بیشتر اوقات، توسعه دهندگان از عبارات منظم در مسیریابی برنامه استفاده می کنند.
در این مثال، در فایل urls.py
یک برنامه فریمورک جنگو، نمونه ای از سردرگمی مسیر (Path Confusion) را مشاهده می کنیم. توسعه دهنده از عبارت منظم درست استفاده نکرده است که منجر به آسیب پذیری می شود:
from django.urls import re_path
from . import views
urlpatterns = [
re_path(r'.*^dashboard', views.path_confusion ,name = 'index'),
]
اگر مسیر https://example.com/dashboard/none.js
توسط کاربر در مرورگر نیز باز شود، اطلاعات داشبورد کاربر را می توان نمایش داد و اگر هدف از CDN یا کش وب استفاده کند، یک حمله فریب کش وب را می توان پیاده سازی کرد.
ابزارها
اصلاح
- از طبقهبندی/مدیریت حافظه پنهان بر اساس پسوند یا مسیر فایل (نوع محتوای اهرمی) خودداری کنید.
- اطمینان حاصل کنید که مکانیسم(های) کش به سربرگ های کنترل حافظه پنهان مشخص شده توسط برنامه شما پایبند هستند.
- مدیریت و تغییر مسیرهای فایل Not Found سازگار با RFC را اجرا کنید.