انکودینگ مضاعف

منتشر شده در دسته : بلاگ, تست نفوذ وب

انکودینگ مضاعف (Double Encoding) یا انکودینگ دابل همان انکودینگ درصد که در مطلب قبلی شرح دادیم می باشد با این تفاوت که هر کاراکتر به جای یک بار دو بار انکود می شود. این تکنیک زمانی کارآمد خواهد بود که می خواهیم از فیلترهایی عبور کنیم که کاراکترهای انکود شده را بلاک می کنند. پس ما می توانیم به جای یک بار دو بار کاراکتر را فیلتر کنیم. تکنیک انکودینگ مضاعف تنها زمانی کار می کند که دکودینگ بازگشتی (Recursive Decoding) انجام پذیرد.

این همان تکنیکی است که با استفاده از آن در سال ۲۰۰۱ وب سرور IIS 5.0 مورد حمله پیمایش مسیر (Directory Traversal) قرار گرفت.

انکودینگ مضاعف برخی اوقات در سناریوهای دیگر همچون درج فایل محلی (LFI) و درج فایل ریموت (RFI) نیز کاربرد دارد که در این شرایط بایستی مسیر پیلود را انکود کنیم. معمولا مقدایر /../.. یا …. به منظور پیمایش مسیر به پوشه والد استفاده می شود. برخی فیلترها این مقادیر را شناسایی کرده و آنها را بلاک می کنند. با استفاده از تکنیک دابل انکودینگ با همان انکودینگ مضاعف می توان از این فیلترها عبور کرد.

انکودینگ مضاعف

در انکودینگ درصد اگر که مقدار انکود شده ۳c% را داشتیم, این مقدار به کاراکتر > دکوک می شد. در انکودینگ مضاعف یا دابل انکودینگ, کاراکتر درصد % یک بار دیگر انکود می شود و به مقدار هگزادسیمال موجود اضافه می شود. پس اگر ما بخواهیم کاراکتر > را با استفاده از انکودینگ مضاعف انکود کنیم, ابتدا با استفاده از انکودینگ درصد به مقدار ۳c% تبدیل شده و سپس کاراکتر درصد مجدد انکود شده که مقدار  ۲۵% را می دهد و در نهایت مقدار هگزادسیمال به آن اضافه شده و نتیجه نهایی ۲۵۳c% خواهد بود.

مقدار زیر یک آدرس URL را به حالت عادی , حالت انکودینگ درصد و حالت انکودینگ مضاعف به شما نشان می دهد :

  • عادی :
http://netamooz.net/blog
  • انکودینگ درصد :
http%3A%2F%2Fnetamooz.net%2Fblog
  • انکودینگ مضاعف :
http%253A%252F%252Fnetamooz.net%252Fblog

آسیب پذیری پیمایش مسیر IIS 5.0

در سال ۲۰۰۱ یک آسیب پذیری پیمایش مسیر در وب سرور معروف مایکروسافت IIS 5.0 شناسایی شد. آسیب پذیری بسیار حیاتی بود چرا که موجب فراهم آمدن اجرای کد بر روی وب سرور بدون نیاز به احرازهویت می شد. این آسیب پذیری در اثر انکودینگ مضاعف آدرس URL درخواستی پدیدار شده بود. مایکروسافت در بولتین امنیتی MS01-026 این آسیب پذیری را شرح داد. از توضیحات آن می توان فهمید که انکودینگ مضاعف به اشتباه توسط وب سرور IIS انجام پذیرفته و به هر شخصی ناشناس اجازه پیمایش مسیر نام های مسیر وب سرور و در نتیجه اجرای دستور در وب سرور با استفاده از حساب کاربری وب سرور را می دهد.

در IIS هر زمان که شخصی تقاضای مسیر /../.. را بدهد, از آنجایی که این مسیر خارج از ریشه دایرکتوری وب سرور می باشد, توسط وب سرور بلاک می شود و اجازه این کار داده نمی شود.

فرض کنید که دایرکتوری ریشه ما یک پوشه ویندوز بوده. در صورتیکه مسیر و دستور زیر درون مرورگر به وب سرور ارسال شود, به دلیل وجود /../.. بلاک می شود و اجازه پیمایش مسیر داده نمی شود :

http://example.com/scripts/../../winnt/system32/cmd.exe?/c+dir+c:\

حال اگر درخواست دستور ما از طریق انکودینگ مضاعف اجرا شود, دیگر بلاک نمی شود و با استفاده از آن می توان به اجرای کد بر روی وب سرور پرداخت :
http://example.com/scripts/%252E%252E%252F%252E%252E%252Fwinnt/system32/cmd.exe?/c+dir+c:\

صاحب امتیاز نت آموز : نویسنده , مدرس و متخصص در زمینه امنیت شبکه های رایانه ای

نظرات غیرمرتبط با موضوع این مطلب تایید نخواهند شد. این سوالات را می توانید از بخش پشتیبانی آموزشی مطرح کنید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *