نقص جدید PHP می تواند به مهاجمان اجازه دهد سایتهایی را که روی سرورهای Nginx در حال اجرا هستند هک کنند

دسته بندی ها : اخبار ۱۵ آبان ۱۳۹۸ فایزه اشرفیان اشرفیان 25 بازدید

اگر وب سایت مبتنی بر PHP را روی سرور NGINX اجرا می کنید و برای عملکرد بهتر قابلیت PHP-FPM را فعال کرده اید ، از یک آسیب پذیری تازه آشکار شده استفاده می‌کنید که می تواند به مهاجمان غیرمجاز اجازه دهد سرور وب سایت شما را از راه دور هک کنند.

 

این آسیب پذیری، CVE-2019-11043 ، وب سایتهایی را با پیکربندی های خاصی از PHP-FPM تحت تأثیر قرار می دهد که گفته می شود در حالت نرمال بسیار نادر نیست و می تواند به راحتی به عنوان یک اثبات مفهوم (PoC) برای نقص مورد سوء استفاده قرار بگیرد.

 

PHP-FPM یک پیاده سازی جایگزین PHP FastCGI است که پردازش پیشرفته و بسیار کارآمد را برای اسکریپت های نوشته شده به زبان برنامه نویسی PHP ارائه می دهد.

 

آسیب پذیری اصلی مشکل تخریب حافظه سرریز “env_path_info” در ماژول PHP-FPM است و ایجاد زنجیره ای آن با سایر موارد می تواند به مهاجمان اجازه دهد از راه دور کد دلخواه بر روی سرورهای آسیب پذیر وب اجرا کنند.

 

این آسیب پذیری توسط اندرو دانا ، محقق امنیتی در wallarm هنگام شکار برای اشکالات در یک مسابقه Capture The Flag مشاهده شد، که در آن زمان توسط دو محقق همکار وی، عمر گانیف و امیل لرنر مسلح شد تا یک کد کاملاً کارآمد از راه دور توسعه دهد.

 

 

کدام وب سایتهای مبتنی بر PHP در برابر هکرها آسیب پذیر هستند؟

اگرچه سوءاستفاده PoC که به صورت عمومی منتشر شده است به طور خاص برای هدف قرار دادن سرورهای آسیب پذیر در حال اجرا از نسخه های PHP 7+ طراحی شده است ، اما اشکال سرریز PHP-FPM همچنین بر نسخه های اولیه PHP تأثیر می گذارد و می تواند به روشی متفاوت مسلح شود.

 

در اینجا، از دستورالعمل fastcgi_split_path_info برای تقسیم URL صفحات وب PHP به دو قسمت استفاده می شود، مقدار یک قسمت، نام اسکریپت را به موتور PHP-FPM می­دهد و دیگری شامل اطلاعات مسیر آن است.

 

چگونه PoC RCE از PHP FPM استفاده می کند؟

 

به گفته محققان، رگیولار اکسپرشن، که دستورالعمل fastcgi_split_path_info را تعریف می کند، همانطور که نشان داده شده است، می تواند با استفاده از کاراکتر newline به گونه ای دستکاری شود که تابع تقسیم در نهایت اطلاعات مسیر را خالی کند.

 

در مرحله بعد، از آنجا که یک اشاره گر حسابی در کد FPM وجود دارد که به اشتباه تصور می کند env_path_info پیشوندی برابر با مسیر اسکریپت php دارد، بدون اینکه در واقع وجود پرونده روی سرور را تأیید کند، سبب می شود که یک مهاجم با درخواست URL­های خاص به وب سایت هدف، بازنویسی داده برروی حافظه داشته و از این مشکل سو استفاده کند.

 

در پس زمینه، PoC اکسپلویت [۱ (PHuiP-FPizdaM) ، ۲] که محققان منتشر کردند، این دو مشکل را بهم وصل کردند تا حافظه را دستکاری نمایند و  تنظیمات php.ini در فایل پیکربندی PHP-FPM سرور هدف را تغییر دهد که درنهایت به مهاجمان امکان اجرای کد از طریق web-shell را می­دهد.

 

به روزرسانی های PHP 7 برای جبران نقص FPM منتشر شد

لیست پیش شرط های بهره برداری موفقیت آمیز ، همانطور که در بالا گفته شد، غیر معمول نیست زیرا تنظیمات آسیب پذیر توسط برخی از ارائه دهندگان میزبانی وب مورد استفاده قرار می گیرد و به عنوان بخشی از بسیاری از آموزش های PHP FPM در اینترنت موجود است.

 

یکی دیگر از ارائه دهندگان میزبانی وب تحت تأثیر این، Nextcloud است که دیروز بیانیه ای را منتشر کرد و به کاربران خود هشدار داد که “پیکربندی پیش فرض Nextcloud NGINX نیز در مقابل این حمله آسیب پذیر است” و به مدیران سیستم توصیه می کند که اقدامات فوری را انجام دهند.

به کاربران توصیه می شود که PHP را به آخرین ورژن PHP 7.3.11 و PHP 7.2.24 به روز کنند. فقط این کار را انجام دهید ، حتی اگر از پیکربندی آسیب پذیر استفاده نمی کنید.

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

نظرات کاربران

دیدگاهتان را بنویسید

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

لینک کوتاه :

عضویت در خبرنامه ویژه مشتریان سیگما پلاس

با عضویت در خبرنامه ویژه سیگما پلاس از آخرین جشنواره های سایت باخبر شوید!