ProHoster > وبلاگ > اخبار اینترنتی > آسیب پذیری در آپاچی تامکت که امکان جایگزینی کد JSP و دریافت فایل های برنامه وب را فراهم می کند
آسیب پذیری در آپاچی تامکت که امکان جایگزینی کد JSP و دریافت فایل های برنامه وب را فراهم می کند
محققان شرکت چینی Chaitin Tech کشف کردند آسیب پذیری (CVE-2020-1938) در آپاچی تامکت، یک پیاده سازی باز از Java Servlet، JavaServer Pages، Java Expression Language و Java WebSocket. این آسیبپذیری با نام رمز Ghostcat و سطح شدت بحرانی (9.8 CVSS) اختصاص یافته است. این مشکل در پیکربندی پیشفرض اجازه میدهد تا با ارسال درخواستی در پورت شبکه 8009، محتویات هر فایلی را از فهرست برنامههای وب، از جمله فایلهای دارای تنظیمات و کدهای منبع برنامه، بخواند.
این آسیبپذیری همچنین امکان وارد کردن فایلهای دیگر به کد برنامه را میدهد، که در صورتی که برنامه اجازه میدهد فایلها در سرور آپلود شوند، امکان اجرای کد روی سرور را فراهم میکند (برای مثال، یک مهاجم میتواند یک اسکریپت JSP را که بهعنوان یک تصویر پنهان شده است از طریق آپلود کند. فرم آپلود تصویر). این حمله زمانی انجام می شود که امکان ارسال درخواست به پورت شبکه با کنترلر AJP وجود داشته باشد. طبق داده های اولیه، آنلاین یافت بیش از 1.2 میلیون میزبان درخواست ها را از طریق پروتکل AJP می پذیرند.
این آسیب پذیری در پروتکل AJP وجود دارد و نامیده نمی شود خطا در اجرا علاوه بر پذیرش اتصالات از طریق HTTP (پورت 8080)، آپاچی تامکت به طور پیشفرض اجازه دسترسی به یک برنامه وب از طریق پروتکل AJP را میدهد.پروتکل Apache Jserv، پورت 8009)، که یک آنالوگ باینری از HTTP است که برای عملکرد بالاتر بهینه شده است، معمولاً هنگام ایجاد یک خوشه از سرورهای تامکت یا برای سرعت بخشیدن به تعامل با تامکت در یک پروکسی معکوس یا متعادل کننده بار استفاده می شود.
AJP یک عملکرد استاندارد برای دسترسی به فایلهای روی سرور فراهم میکند که میتوان از آن استفاده کرد، از جمله دریافت فایلهایی که مشمول افشا نیستند. AJP قرار است فقط برای سرورهای قابل اعتماد قابل دسترسی باشد، اما در واقع پیکربندی پیشفرض تامکت، کنترلر را روی تمام رابطهای شبکه اجرا میکرد و درخواستها را بدون احراز هویت میپذیرفت. دسترسی به هر فایل برنامه وب، از جمله محتویات WEB-INF، META-INF و هر دایرکتوری دیگری که از طریق فراخوانی به ServletContext.getResourceAsStream ارائه می شود، امکان پذیر است. AJP همچنین به شما امکان می دهد از هر فایلی در دایرکتوری های قابل دسترسی به برنامه وب به عنوان یک اسکریپت JSP استفاده کنید.
این مشکل از ۱۳ سال پیش که شعبه Tomcat 13.x منتشر شد، ظاهر شد. علاوه بر خود مشکل تامکت تاثیر می گذارد و محصولاتی که از آن استفاده میکنند، مانند Red Hat JBoss Web Server (JWS)، JBoss Enterprise Application Platform (EAP)، و همچنین برنامههای کاربردی وب مستقلی که از آن استفاده میکنند. چکمه بهاری. آسیب پذیری مشابه (CVE-2020-1745) حاضر در وب سرور زیر بغل، در سرور برنامه Wildfly استفاده می شود. در JBoss و Wildfly، AJP به طور پیشفرض فقط در پروفایلهای standalone-full-ha.xml، standalone-ha.xml و ha/full-ha در domain.xml فعال است. در Spring Boot، پشتیبانی AJP به طور پیش فرض غیرفعال است. در حال حاضر، گروه های مختلف بیش از ده ها نمونه کاری از اکسپلویت ها را آماده کرده اند. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11).
آسیبپذیری در نسخههای تامکت رفع شد 9.0.31, 8.5.51 и 7.0.100 (نگهداری از شعبه 6.x متوقف شد). میتوانید در دسترس بودن بهروزرسانیها در کیتهای توزیع را در این صفحات دنبال کنید: دبیان, اوبونتو, ریل, کلاه نمدی مردانه, سوس, FreeBSD. به عنوان یک راه حل، می توانید سرویس Tomcat AJP Connector را غیرفعال کنید (یک سوکت گوش دادن را به لوکال هاست متصل کنید یا خط را با پورت Connector = "8009" در نظر بگیرید) در صورت عدم نیاز، یا راه اندازی دسترسی تأیید شده با استفاده از ویژگیهای «مخفی» و «آدرس»، در صورتی که این سرویس برای تعامل با سرورها و پراکسیهای دیگر بر اساس mod_jk و mod_proxy_ajp استفاده شود (mod_cluster از احراز هویت پشتیبانی نمیکند).