یک آسیبپذیری جدید در وبسایتهای مبتنیبر PHP امکان هک شدن سایتهای در حال اجرا بر روی سرورهای NGINX را میدهد.
شناسایی آسیبپذیری در وبسایتهای مبتنیبر PHP
مرکز ماهر , 13 آذر 1398 ساعت 14:58
یک آسیبپذیری جدید در وبسایتهای مبتنیبر PHP امکان هک شدن سایتهای در حال اجرا بر روی سرورهای NGINX را میدهد.
یک آسیبپذیری جدید در وبسایتهای مبتنیبر PHP امکان هک شدن سایتهای در حال اجرا بر روی سرورهای NGINX را میدهد.
به گزارش افتانا (پایگاه خبری امنیت فناوری اطلاعات)، آسیبپذیری جدید در وبسایتهای مبتنی بر PHP بر روی سرورهای NGINX کشف شدهاست. اگر برای بهبود عملکرد و کارایی اینگونه وبسایتها، قابلیت PHP-FPMرا فعال کردهاید، بدانید که در معرض آسیبپذیری جدیدی قرار دارید که در آن مهاجمان غیرمجاز میتوانند از راه دور سرور وبسایت شما را هک کنند.
به این آسیبپذیری شناسه CVE-۲۰۱۹-۱۱۰۴۳ اختصاص داده شدهاست و وبسایتهایی با پیکربندی خاصی از PHP-FPM (که ظاهراً غیرمعمول هم نیست) را تحت تأثیر قرار میدهد. قابلیت PHP-FPM پیادهسازی دیگری از PHP FastCGIاست که پردازشهایی پیشرفته و بسیار کارآمد را برای اسکریپتهای نوشته شده در زبان برنامهنویسی PHPارائه میدهد.
علت اصلی این آسیبپذیری، مشکل حافظه underflow"env_path_info" در ماژول PHP-FPMاست و ترکیب آن با سایر نقصها میتواند مهاجمان را قادر سازد تا از راه دور کد دلخواه خود را بر روی وبسرورهای آسیبپذیر اجرا کنند.
آسیبپذیری مذکور، توسط یک محقق امنیتی در Wallarmبه نام Andrew Danauدر زمان برگزاری یکی از مسابقات Capture The Flag(CTF)کشف شد و وی با همکاری دو تن از محققان دیگر به نامهای Omar Ganievو Emil Lerner توانستند آن را به صورت یک اکسپلویت اجرای کد از راه دور توسعه دهند.
اگرچه اکسپلویت کد اثبات مفهومی (PoC) آسیبپذیری مورد بحث به صورت عمومی متتشر شدهاست اما به طور خاص برای هدف قرار دادن سرورهای آسیبپذیر در حال اجرای نسخههای PHP ۷+ طراحی شدهاست، با این وجود، نسخههای پیشین PHP نیز تحت تأثیر این آسیبپذیری قرار دارند.
بهطور خلاصه، یک وبسایت آسیبپذیر خواهدبود اگر:
- وبسرور NGINXبه صورتی پیکربندی شده باشد که درخواستهای صفحات PHPرا به پردازنده PHP-FPM ارسال کند.
- دستور "fastcgi_split_path_info" در این پیکربندی وجود داشته و شامل یک عبارت معمولی باشد که با نماد '^' شروع میشود و با نماد '$' خاتمه مییابد.
- متغیر PATH_INFOبا دستور fastcgi_paramتعریف شده است.
- دستوری شبیه به "try_files $uri =۴۰۴"و یا "-f $uri" برای مشخص کردن وجود یا عدم وجود یک فایل، وجد نداشتهباشد.
پیکربندی آسیبپذیر NGINX و PHP-FPM میتواند به صورت زیر باشد:
کد مطلب: 16086