اگر شما یک وبسایت را ایجاد میکنید، شاید بخواهید فایلهای مختلفی را در سرور خود ذخیره کنید. اما به طور پیشفرض، دسترسی به این فایلها برای کاربران محدود است. در اینجا آسیب پذیری Directory Traversal به کار میآید.
آسیب پذیری Directory Traversal یک نوع حمله به سیستم است که توسط تهاجم کنندگان برای دسترسی به فایلها و دایرکتوریهایی استفاده میشود که از طریق HTTP سرو میشوند. با استفاده از این حمله، یک تهاجم کننده میتواند فایلهای مختلفی را از سرور دریافت کند و حتی به آنها دسترسی پیدا کند.
آسیب پذیری Directory Traversal چگونه کار میکند؟
Directory Traversal به عنوان یک حمله به سیستم استفاده میشود که با استفاده از آن، تهاجم کنندگان میتوانند به فایلها و دایرکتوریهایی دسترسی پیدا کنند که از طریق HTTP سرو میشوند. این حمله در اصل بر روی نقص در بخش دسترسی فایلها و دایرکتوریها در سیستم عامل وب سرور استوار است.
Directory Traversal اغلب به عنوان “../” در URL نشان داده میشود و به معنای “برو به پدر دایرکتوری” است. به عنوان مثال، URL “http://example.com/files/../../../etc/passwd” به ما اجازه میدهد تا به فایل /etc/passwd در سرور دسترسی پیدا کنیم. به طور کلی، تمام کاراکترهایی که به عنوان نشانه مسیر استفاده میشوند، از جمله “/” و “” و “.” و “..”، در این حمله مورد استفاده قرار میگیرند.
از طریق Directory Traversal، تهاجم کنندگان میتوانند به دادههایی دسترسی پیدا کنند که معمولاً در دسترس نیستند. برای مثال، آنها میتوانند به فایلهای پسورد و سایر فایلهای حساس در سرور دسترسی پیدا کنند و از آنها به عنوان اطلاعاتی برای انجام حملات دیگر استفاده کنند. به علاوه، تهاجم کنندگان میتوانند کدهای خود را در سرور اجرا کنند و از آنها به عنوان یک وکتور برای حملات دیگر استفاده کنند.
نمونه هایی از Directory Traversal :
مثالهایی از Directory Traversal عبارتند از:
1. ../etc/passwd
2. ../../etc/passwd
3. ../../../etc/passwd
4. ..\..\..\..\..\Windows\System32\cmd.exe
5. ../../../../../../../../etc/hosts
این مثالها نشاندهنده این است که چگونه با استفاده از “..” در URL، میتوان به سیستم فایل سرور دسترسی پیدا کرد و فایلهای حساسی مانند پسوردها و فایلهای پیکربندی سرور را دسترسی پیدا کرد. با استفاده از این مثالها میتوان تهاجمگران را آموزش داد که چگونه از این آسیبپذیری استفاده کنند و برای دسترسی به فایلهای حساس از آن بهره ببرند.
روشهای معمول برای بهرهبرداری از آسیب پذیری Directory Traversal
آسیب پذیری Directory Traversal – تغییر ورودی کاربر
تغییر ورودی کاربر یکی از روشهایی است که تهاجمگران با استفاده از آن، از آسیب پذیری Directory Traversal بهره میبرند. برای جلوگیری از این نوع حملات، باید اعتبارسنجی دادههای ورودی کاربران انجام شود. همچنین، بهتر است از تکنیکهایی مانند Whitelist Validation برای فیلتر کردن ورودیهای کاربران استفاده کنید. در این روش، تنها دادههایی که در لیست سفید قرار دارند، به عنوان ورودی معتبر در نظر گرفته میشوند.
آسیب پذیری Directory Traversal – نقض محدودیتهای دسترسی
نقض محدودیتهای دسترسی نیز یکی دیگر از روشهایی است که تهاجمگران از آن در هنگام حملات Directory Traversal استفاده میکنند. در این روش، تهاجمگر با دسترسی به دایرکتوریها و فایلهایی که قرار نیست به آنها دسترسی داشته باشد، از قابلیتهایی مانند خواندن، نوشتن و اجرا کردن آنها استفاده میکند. برای جلوگیری از این نوع حملات، باید محدودیتهای دسترسی به دایرکتوریها و فایلها به درستی تنظیم شود و تنها کاربرانی که نیاز به دسترسی دارند، به آنها دسترسی داشته باشند. همچنین، استفاده از سیستمهای شناسایی و احراز هویت قوی نیز از دیگر راههای جلوگیری از نقض محدودیتهای دسترسی است.
آسیب پذیری Directory Traversal – استفاده از نرمافزارهای آسیبپذیر
یکی دیگر از روشهایی که تهاجمگران با استفاده از آسیب پذیری Directory Traversal بهره میبرند، استفاده از نرمافزارهای آسیبپذیر است. برخی از نرمافزارهایی که دارای این نوع آسیب پذیری هستند، ممکن است به دلیل عدم بهروزرسانی و یا شناسایی نشدن آسیب پذیری، هنوز در حال استفاده باشند. به همین دلیل، تهاجمگران میتوانند با بهرهگیری از این نرمافزارها، دسترسی به دایرکتوریها و فایلهایی را که قرار نیست به آنها دسترسی داشته باشند، به دست آورند. برای جلوگیری از این نوع حملات، باید بهروزرسانی نرمافزارهای مورد استفاده صورت گیرد و در صورت وجود آسیب پذیری، باید آنها به سرعت برطرف شوند. همچنین، بررسی و ارزیابی نرمافزارهای جدید قبل از استفاده نیز از دیگر راههای جلوگیری از استفاده از نرمافزارهای آسیبپذیر است.
آسیب پذیری Directory Traversal – جستجوی URL های آسیبپذیر
تهاجمگران میتوانند با جستجوی URL های آسیبپذیر، به راحتی از این نوع آسیب پذیری بهره بگیرند. برای جستجوی این نوع URL ها، تهاجمگران از برخی ابزارهای خاص مانند DirBuster و DirSearch استفاده میکنند. این ابزارها با تست کردن بسیاری از URL های مختلف، به دنبال آن ها میگردند و در صورت پیدا کردن یک URL آسیبپذیر، از آن بهره میبرند.
برای جلوگیری از این نوع حملات، باید از روشهای متعددی مانند استفاده از فایروالها و فیلترهای وب استفاده کرد. همچنین، باید مراقب بود که نام فایلها و دایرکتوریهای حساسی که نباید به آنها دسترسی داشته باشیم، در نام فایلها و URL هایی که به کاربران میدهیم، قرار نگیرند.
جلوگیری از آسیبپذیری Directory Traversal:
برای جلوگیری از آسیبپذیری Directory Traversal، میتوان از رویههای زیر استفاده کرد:
1. تأیید ورودی کاربر: همیشه ورودیهای کاربر را تأیید کنید و از فیلترهای مناسبی برای اعتبارسنجی ورودیها استفاده کنید.
2. محدودیت دسترسی فایل: تنظیمات دسترسی فایل را بررسی کنید و به کاربران فقط دسترسی لازم را بدهید.
3. محدودیت سطح دسترسی کاربر: فقط به کاربران مجاز دسترسی به فایلهای مورد نیاز بدهید.
4. استفاده از فایروال: استفاده از فایروالهای شبکه به منظور جلوگیری از دسترسی غیرمجاز به فایلها و دایرکتوریهای حساس مفید است.
5. استفاده از تمامی ترفندهای امنیتی: همیشه بهروزرسانی کنید، استفاده از مکانیزمهای حفاظتی مثل WAF و IDS و IPS و غیره به منظور کاهش خطرات آسیبپذیری Directory Traversal بسیار مهم است.
6. بستن تمامی پورتهای غیرضروری: این کار میتواند بهعنوان یک تمهید امنیتی برای جلوگیری از دسترسی غیرمجاز به فایلهای سیستم انجام شود.
7. آموزش کاربران: برای جلوگیری از آسیبپذیریهای Directory Traversal، کاربران باید با روشهای ایمنی آشنا شوند و از اقدامات ایمنی پیشگیرانه استفاده کنند.
آسیب پذیری Directory Traversal – کلام آخر:
در این مقاله با مفهوم آسیب پذیری Directory Traversal و روش هایی که هکرها برای بهره برداری از آن استفاده می کنند، آشنا شدیم. همچنین با روش های پیشگیری از این آسیب پذیری، از جمله اصلاح کردن ورودی کاربر، اعمال محدودیت دسترسی و استفاده از فایروال ها و سیستم های مدیریت امنیتی آشنا شدیم. برای جلوگیری از آسیب پذیری Directory Traversal، بهتر است همواره به روز رسانی نرم افزارهای خود و انجام پشتیبانی و نگهداری سیستم های خود باشیم. در نهایت با مثال هایی از Directory Traversal در سایت های واقعی، با روش های حمله هکرها آشنا شدیم و راهکارهای مناسب برای پیشگیری از این حملات را در اختیار داشتیم.
سوالات متداول:
۱. آیا تمام وب سایت ها در برابر آسیب پذیری Directory Traversal در مقابل حملات هکران ایمن هستند؟
پاسخ: خیر، برخی از وب سایت ها هنوز در مقابل حملات Directory Traversal آسیب پذیر هستند و باید با رعایت استانداردهای امنیتی، این حفره های امنیتی برطرف شوند.
۲. آیا اعمال محدودیت دسترسی تنها راهکار پیشگیری از آسیب پذیری Directory Traversal است؟
پاسخ: خیر، اعمال محدودیت دسترسی تنها یکی از راهکارهای پیشگیری است. اصلاح کردن ورودی کاربر، استفاده از فایروال ها و سیستم های مدیریت امنیتی نیز به عنوان راهکارهای دیگر می توانند در پیشگیری از این آسیب پذیری موثر باشند.
۳. آیا راه حل تعمیمی برای رفع آسیب پذیری Directory Traversal وجود دارد؟
پاسخ: نه، هر وب سایت ممکن است با شیوه های مختلفی طراحی شده باشد و به همین دلیل، راه حل تعمیمی برای رفع آسیب پذیری Directory Traversal وجود ندارد. بهتر است هر وب سایت به طور جداگانه بررسی و راهکارهای مناسب برای پیشگیری از این آسیب پذیری در آن اعمال شود.
۴. آیا استفاده از فایروال ها می تواند به تنهایی از آسیب پذیری Directory Traversal جلوگیری کند؟
استفاده از فایروالها میتواند به تنهایی از آسیب پذیری Directory Traversal جلوگیری کند، اما این کار به تنهایی کافی نیست و باید از روشهای دیگری نیز استفاده شود. فایروالها معمولاً به عنوان یک نقطه اتصال میان شبکه و اینترنت استفاده میشوند و قابلیت کنترل دسترسی به سرویسها و پروتکلها را دارا هستند. با استفاده از فایروالها میتوان دسترسی کاربران به سرویسهای خطرناک و ناامن مانند سرویس FTP را محدود کرد و از حملات Directory Traversal جلوگیری کرد. همچنین، با استفاده از فایروالها میتوان دسترسی به پورتهای خطرناک و ناامن را محدود کرد و از ورود افراد ناشناس به سیستم جلوگیری کرد. با این حال، استفاده از فایروالها باید به همراه دیگر روشهای امنیتی نیز اعمال شود تا بهترین سطح امنیتی برای سیستم فراهم شود.