این رایتاپ بر اساس سناریوهای دریافت شده از متخصصین امنیتی باگدشت با هدف اشتراک گذاری دانش امنیتی و تسریع در ایمن سازی ارایه شده است.
اسیب پذیری Tilde به افشای نام کوتاه فایل یا پوشه های سرور IIS با استفاده از کاراکتر (~) اشاره می کند. امکان تشخیص نامهای کوتاه فایلها و دایرکتوریها با نامهایی با فرمت 8.3 وجود دارد. این روش نامگذاری در مایکروسافت IIS وجود دارد و در بعضی از نسخههای IIS آسیبپذیر است. شناسایی وجود فایلها در وب سرور بر اساس نوع ریسپانس گرفته شده از وب سرور بررسی میشود که سرور پاسخ 404 برمیگرداند که نشان دهنده وجود این آسیبپذیری است و 400 نشان دهنده عدم وجود است.
نام فایلها در وب سرور با 6 کاراکتر نخست ذخیره شده و ادامه نام فایل با تیلد نامگذاری میشود. آسیبپذیری به دلیل ویژگی استفاده از کاراکتر تیلد در ریکوئست GET است که اجازه شناسایی وجود فایلها را از بیرون از سازمان میدهد. مهاجم با شناسایی وجود فایلهایی که بصورت عمومی در دسترس نیستند، میتواند با بروت فورس ادامه نام فایل را به دست اورده و به خود فایل دسترسی یابد.
نحوه تست:
یکی از راه های اکسپلویت، استفاده از ابزار IIS-ShortName-Scanner میباشد. پس از دانلود و اجرا کردن این ابزار میتوانید با طی کردن پنج مرحله زیر تارگت را در برابر آسیب پذیری tilde بررسی نمائید.
What is the target (e.g. http://localhost:8080/folder/)? تارگت خود را وارد نمایید(ادرس شما حتما باید دارای https یا http باشد)
Do you want to use a new config file [Y=Yes, Anything Else=No]? آیا می خواهید از یک فایل پیکربندی جدید استفاده کنید؟ (Y=ساخت کانفیگ جدید N=ادامه با کانفیگ قبلی)
Do you want to only verify whether or not the target is vulnerable without scanning it thoroughly [Y=Yes, Anything Else=No]? آیا میخواهید فقط بدون اسکن کردن کامل هدف، آسیبپذیر بودن یا نبودن آن را تأیید کنید(Y=بله N=مورد دیگری مدنظر است)
Scan Mode [0=Show final results only, 1=Show final results step by step, 2=Show Progress (default)]? حالت اسکن به چه صورت باشد؟ (0=فقط نمایش نتیجه نهایی 1=نمایش نتیجه نهایی به صورت مرحله ای 2=نمایش کامل)
Number of threads [0-50 (20 default)]? تعداد thread های همزمان اسکن چند است؟
پس از طی کردن مراحل بالا در صورت آسیب پذیر بودن فایل هایی که ابزار پیدا میکند را نمایش میدهد.
# IIS Short Name (8.3) Scanner version 2.3.9 (05 February 2017) - scan initiated Target: https://test.example.ir/ |_ Result: Vulnerable! |_ Used HTTP method: DEBUG |_ Suffix (magic part): \a.aspx |_ Extra information: |_ Number of sent requests: 19474 |_ Identified directories: 26 |_ APP_GL~1 |_ ASPNET~1 |_ ATTACH~1 |_ TEMPLA~1 |_ USERSF~1 |_ WEBREF~1 |_ Indentified files: 101 |_ 117BC3~1.3 |_ Actual extension = .3 |_ 1401~1.HTM |_ Actual file name = 1401 |_ 401~1.HTM |_ Actual file name = 401 |_ AGAHI-~1.DOC |_ ANDROI~1.PDF |_ TAGHVI~1.PDF |_ BAKHSH~1.RAR |_ Actual extension = .VB |_ FIROZE~1.JPG |_ Actual file name = INDEX …
DEBUG /TAGHVIM~1.PDF HTTP/2 Host: www.test.example.ir Cache-Control: max-age=0 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9
HTTP/2 404 Not Found Content-Type: text/html Server: Microsoft-IIS/10.0 X-Powered-By: ASP.NET Content-Length: 1245
GET /TAGHVIM-1401.PDF HTTP/2 Host: www.test.example.ir Cache-Control: max-age=0 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9
نمایش پاسخ برگردانده شده، در مرورگر منجر به دسترسی به فایل و دانلود آن میشود. از این تغییر هر فایلی که در سرور آسیب پذیر وجود دارد و یا فایلهایی که در آینده قرار داده میشود آسیب پذیر به دسترسی غیرمجاز هستند:
HTTP/2 200 OK Content-Type: text/html Server: Microsoft-IIS/10.0 X-Powered-By: ASP.NET Server: Microsoft-IIS/10.0 Content-Length: 1012703
راهکار ایمن سازی:
پیکربندی صحیح وف برای بلاک نمودن درخواستهای تیلد یا یونیکد آن
پیاده سازی مکانیزم ارور هندلینگ
پیاده سازی مکانیزم URL Rewrite
بهروزرسانی IIS و .Net
پیادهسازی مکانیزم محدودیت تعداد درخواست