یک آسیب‌پذیری RCE در Microsoft SharePoint زمانی که به درستی نمی‌تواند کنترلرهای ASP.NET را شناسایی و فیلتر کند وجود دارد. این باگ امنیتی به برنامه باگ بانتی ZDI توسط یک متخصص امنیتی ناشناس ارایه گردید.

شناسه آسیب‌پذیری:

CVE-2020-1181

درجه آسیب‌پذیری:

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Base Score: 8.8 High

سیستم‌های آسیب‌پذیری:

  1. Microsoft SharePoint Enterprise Server 2016
  2. Microsoft SharePoint Foundation 2010 Service Pack 2
  3. Microsoft SharePoint Foundation 2013 Service Pack 1
  4. Microsoft SharePoint Server 2019

نیازمندی تعامل کاربر: خیر

سال شناسایی: ۲۰۲۰

توضیحات:

سرور Microsoft SharePoint به کاربر اجازه تولید صفحات وب را می‌دهد و صفحات خود و تعریف شده توسط کاربر را به شکل‌های مختلف پشتیبانی می‌کند. باگدشت در این صفحه به بررسی آسیب‌پذیری Sharepoint پرداخته است. همراه ما باشید.

سرور Sharepoint به کاربر بدون احراز هویت اجازه اجرای کدهای NET. بر روی سرور را می‌دهد و با مجوز اکانت اجرا کننده سرویس‌ها در وب اپلیکشن آن اجرایی می‌شود. برای اجرای موفقیت آمیز حمله، مهاجم باید مجوز دسترسی به صفحه Add and Customize را داشته باشد و تنظیمات پیش فرض آن به کاربر بدون احراز هویت اجازه ایجاد سایت را می‌دهد و هنگامی‌که این اقدام را انجام می‌دهد مالک سایت می‌باشد و تمامی مجوزها را دارا می‌باشد.

سرور SharePoint اجازه ایجاد صفحات وب را به کاربران می دهد ولی محدودیت های بسیاری را در خصوص نوع محتوای نمایش داده شده ایجاد می نماید. صفحات Sharepoint در فایل‌های سیستمی ذخیره می‌شوند و بدون محدودیت هستند. صفحات تولید شده توسط کاربران در پایگاه داده ذخیره می‌شوند و روی این صفحات با محدودیت اجرا می‌شوند. یکی از این محدودیت‌ها شامل استفاده نکردن از کدها و فایل‌های سیستمی است.

اگر کاربری از طریق بارگذاری صفحه‌ای جدید را ایجاد کند، این صفحه در حالت عادی محدود می‌شود. ولی اگر صفحه تولید شده از قسمت SharePoint web editor ایجاد شود، به عنوان یک ghosted در نظر گرفته می‌شود در نتیجه به عنوان یک منبع مورد اطمینان در SharePoint در نظر گرفته می‌شود. این رفتار طبیعی است به این دلیل که در editor روی اجزائی که به صفحه اضافه می‌شود محدودیت گذاشته شده است و به همین دلیل صفحه می‌تواند در مد بدون محدودیت اجرا شود.

آسیب‌پذیری زمانی خودش را نشان می‌دهد که در editor یک Web Part به نام WikiContentWebpart مجاز شناخته شده و Web Part اجازه آپلود فایل ASP.NET را می‌دهد. با این کار حمله کننده دارای یک مسیر خواهد بود که بتواند فایل دلخواه ASP.NET  را در مد بدون محدودیت اجرا نماید که این کار منجر به RCE می‌شود.

نرم‌افزار SharePoint از SPPageParserFilter برای بلاک محتوای خطرناک استفاده می‌کند. اگر صفحه تولید شده از Editor استفاده کند مقدار IsGhosted = true و _isAppWeb برابر false قرار می‌گیرد. همچنین بررسی دوباره برای اطمینان از نبود وابستگی با فایل‌های با سطح کمتر اطمینان اتفاق می‌افتد. ولی چون فایلی تا اینجا اضافه نکردیم این بررسی انجام نمی‌شود. در نتیجه متغیر:

GetEffectivePageParserSettings()

مقدار

PageParserSettings.GhostedPageDefaultSettings

برمی‌گرداند. در نتیجه خواهیم داشت:

compilationmode=Always

allowServerSideScript=true

allowUnsafeControls=true

این بدان معنا است که پارامترها (Directive و Content) متغیر ParseControl(text2, false) را پارس می‌کند. برای اینکه متد ()ParseControl منجربه کامپایل کد نمی‌شود، نمی‌توانیم به شکل مستقیم کدهای NET. را تشخیص دهیم. شرکت مایکروسافت این باگ امنیتی را به روز رسانی نموده است و پیشنهاد می شود سریعا اجرایی گردد.

باگدشت در این صفحه به بررسی آسیب‌پذیری Sharepoint پرداخته است. امیدواریم اظلاعات لازم را بدست آورده باشید.

منابع:

  1. Zero Day Initiative
  2. Microsoft
  3. NVD CVE-2020-1181