باگ دورزدن احرازهویت توسط دو افزونه محبوب وردپرس به نام های InfiniteWP و WP Time Capsule صدها هزاران سایتی که از این افزونه ها استفاده می کنند را در معرض حملات هکرها قرار داده است.
دو افزونه ای که ذکر شد اخیرا از یک باگ تازه کشف شده رنج می برند که باعث می شد فرآیند احراز هویت در وردپرس حذف شده و اصطلاحا دور زده شود و دسترسی به بک اند سایت بدین ویسیله فراهم می شود.
تمام چیزی که یک هکر نیاز دارد این است که نام کاربری مدیر سایت وردپرس را بداند تا بتواند این آسیب پذیری را مورد هدف قرار دهد.
با توجه به آماری که مخزن وردپرس ارائه داده است حدود 300هزار سایت از نسخه ی آسیب پذیر افزونه InfiniteWP و حدود 20هزار سایت نیز از WP Time استفاده می کنند.
هر دوی این افزونه ها به گونه ای طراحی شده اند تا به کاربران اجازه دهند تا بین چند سایت وردپرس که توسط یک سرور میزبانی می شوند احرازهویت شده و به راحتی کارهای مثل به روزرسانی هسته وردپرس، افزونه ها و قالب ها در همه وب سایت های فعال در سطح شبکه وردپرس وهمچنین پشتییبان گیری و برگرداندن اطلاعات و فعال/غیرفعال سازی افزونه ها و قالب ها به صورت همزمان اقدام کنند.
این آسیب پذیری در تاریخ 17دی ماه 98 کشف شده و بلافاصله توسعه دهندگان این افزونه ها نسبت به رفع آسیب پذیری و به روزرسانی این دو افزونه اقدام کردند.
تشریح باگ InfiniteWP Client
نسخه های زیر 1.9.4.5 این آسیب پذیری برای این افزونه احراز شده است و رنک 9.8 یا حیاتی را دریافت کرده است.
نحوه انجام حمله به این شکل است که این حمله در ابتدا نیاز به یک payload انکد شده با JSON داشته و سپس Base64. پس از آن نیز به صورت خام به وسیله یک درخواست POST به سایت هدف ارسال می شود.
این مشکل از طریق تابع iwp_mmb_set_request که در فایل init.php واقع شده است ایجاد می شود. این تابع چک می کند که متغیر request_params از کلاس IWP_MMB_Core خالی نباشد! که البته در برخی مواردی که payload خاصی ارسال می شود کار می کند.
در این مورد، شرط این است که پارامتر iwp_action دقیقا برابر readd_site یا add_site باشد که این دو تنها اکشن هایی هستند که فرآیند احراز دسترسی در آن ها درنظر گرفته نشده و این دقیقا باعث و بانی چنین وضعیتی است!
جالب است بدانیت که هکر تنها کافیست تا نام کاربری را ارائه دهد و در این فرآیند پسورد یا چیز دیگری بررسی نمی شود و در صورتی که نام کاربری درست باشد مجوز عملیات ها داده می شود.
تشریح باگ WP Time Capsule
در این افزونه نیز نسخه های زیر 1.21.16 آسیب پذیر هستند.
برای هدف قرار دادن این آسیب پذیری کافیست تا یک payload حاوی یک متن خاص را در فرمت خام با متد POST ارسال کنید.
آسیب پذیری این افزونه وردپرس در wptc-cron-functions.php خط 12 درست در جایی که درخواست parse می شود شروع می شود. تابع parse_request تابعی دیگر به نام decode_server_request_wptc را فراخوانی می کند که آن در payload ارسال شده در متد POST به دنبال یک رشته متنی شبیه به IWP_JSON_PREFIX می گردد.
اگر بخواهیم به طور خلاصه بیان کنیم اگر درخواست ارسالی به سمت سرور حاوی این متن باشد، تابع wptc_login_as_admin فراخوانی شده و اولین اکانت ادمین موجود را در سیستم لاگین می کند!
قویا پیشنهاد می شود اگر از این دو افزونه استفاده می کنید، آن ها را هم اکنون به آخرین نسخه به روزرسانی کنید.
همچنین آخرین اخبار امنیتی وردپرس را از رسانه شرق وب دنبال کنید.