آسیب پذیری جدید در وب سرویس Apache Struts
آسیب پذیری جدید کشف شده مربوط به وب سرویس Apache در پروژه Struts که بیشتر در زمینه Java web applications مورد استفاده قرار می گیرد به صورت اجرای دستور از راه دور (RCE) به هکرها اجازه کنترل بر روی وب سرور را میدهد. در این مطلب سعی شده است آسیب پذیری مذکور بررسی و شرح داده شود.
در دنیای امروز می توان گفت Apache یکی از محبوب ترینها وب سرویس های حال حاضر میباشد. پروژه Struts که به صورت متن باز ارائه شده است، کاربردهای مختلفی دارد که یکی از آنها در زمینه Java web applications میباشد مورد استفاده بسیاری از شرکت های بزرگ نظیر Vodafone قرار گرفته است.
این آسیب پذیری که با شناسه CVE-2018-11776 به تازگی منتشر شده است در هسته اصلی این فریمورک به دلیل عدم اعتبارسنجی مناسب از سمت ورودیهای کاربر رخ داده است. در این شرایط نفوذگر با ساخت و ارسال آدرس اینترنتی مورد نظر خود به سمت سرور از آسیب پذیری بهره برده و به اجرای دستورات خود از راه دور (RCE) منجر میشود. این آسیبپذیری در ورژنهای 2.3 تا 2.3.34 و 2.5 تا 2.5.16 وجود دارد.
در کمتر از یکسال پیش شرکت Equifax بخاطر آسیبپذیری مشابهی در فریمورک مذکور به شناسه CVE-2017-5638 اطلاعات شخصی 147 میلیون کاربر را در معرض خطر قرار داد و این شرکت مبلغی بالغ بر 600 میلیون دلار ضرر دید. این موضوع اهمیت دو چندانی به گزارش این آسیبپذیری جدید داده است. با کشف این آسیبپذیری در این فریمورک تخمین زده شده است که در حدود 65 درصد از 100 شرکت برتر دنیا را در معرض این آسیبپذیری قرار داده باشد.
در ادامه با نگاهی دقیقتر به بررسی این آسیبپذیری میپردازیم.

در عکس بالا که اشاره به اثبات این آسیبپذیری میکند مشاهده میکنیم شخص نفوذگر با ساخت URL مدنظر خود با استفاده از توابع دستوری درخواست خود را بدون هیچ مشکلی ارسال و دریافت نموده است.
در مثالی دیگر اقدام به ایجاد مسیر و یا فایلهای مدنظر خود بر روی وب سرور آسیبپذیر میکنیم.


در مثال بالا ما سطح دسترسی root را مشاهده میکنیم.
با نگاهی به فایل پیکربندی Sturts اجازه استفاده ناصحیح از Namespace Wildcard و Attribute های خاص در مواردی مانند URL و Action ( مثالی مشابه با عکسهای درج شده ) دلیلی بر ایجاد این حفره شده است.
این آسیبپذیری در ورژنهای 2.3.35 و 2.5.17 برطرف شده است. و پیشنهاد میشود در صورت استفاده از ورژنهای قدیمی هرچه سریعتر اقدام به بهروز رسانی این پروژه کنید.
در ورژنهای آپدیت شده قسمت alwaysSelectFullNamespace و Attribute مورد بازبینی و کنترل بیشتری قرار گرفته است.