مقابله با حملات به کمک بروزرسانی افزونه‌ها

آیا می دانید بیشتر ضربه‌ای که در مقابل حملات سایبری در سایت می خوریم از عدم بروزرسانی درست افزونه‌هاست. زمانی که شما افزونه‌ها را بروز نمی‌کنید و این مسئله رو از نظر دور می‌کنید مسلما با مشکلات جدی روبه‌رو خواهید شد. همین اتفاقی که چند مدت پیش بسیاری از وبسایت‌های وردپرسی را دچار مشکل کرد و متاسفانه بسیاری از آن‌ها هک شدند و از بین رفتند! مشکل امنیتی دو افزونه Profile builder و Duplicatorدو افزونه Profile builder و Duplicator باعث مشکلات امنیتی خطرناکی در وبسایت‌های وردپرسی شدند که به بررسی آن می‌پردازیم. یک اشکال در کنترل کننده فرم، این را برای کاربر مشکوک، محقق می­‌سازد تا امکان ارسال ورودی در زمینه­‌های فرم را که در شکل واقعی اصلا وجود ندارد، فراهم کند. به خصوص اگر ادمین‌­های یک سایت، User Role field را به فرم اضافه نکرده باشند، یک مهاجم یا هکر می‌­تواند یک مقدار موجود در User Role را در زمان ارسال فرم خود، استفاده کند.هنگامی که ادمین­‌ها User Role selector را به یک فرم اضافه می­‌کنند، آن­ها باید لیستی از نقش‌­های تأیید شده را نیز برای کاربران جدید انتخاب کنند. اگر این لیست ایجاد شود، فقط نقش­‌های تأیید شده توسط کنترل­‌ کنندگان فرم، پذیرفته می‌شوند. هنگامی که فیلد User Role در فرم موجود نیست و یک هکر می‌­تواند نقش کاربر یا user role را ارسال کند، در حالی که هیچ لیستی از نقش‌­های تأیید شده وجود ندارد و هر ورودی توسط کاربر، نیز پذیرفته خواهد شد.این دو مسئله مطرح شده با هم ترکیب می‌­شوند تا به هکر­ها و کاربران غیرمجاز این امکان را بدهند تا اکانت­‌های ادمین­ را در سایت­‌های آسیب پذیر وردپرسی ثبت کنند. و حالا این افراد با داشتن امتیازات ادمین سایت، می‌­توانند به طور موثری سایت را به دست بگیرند آن را از دسترس ادمین اصلی خارج کنند و همچنین می­‌تواند بدافزار و ویروس‌­ها را در سایت رها کنند. چاره کار چیست؟ مقابله با حملات با بروزرسانی افزونه‌ها گاهی بهترین راه ممکن است. اما این مسائل در نسخه Profile Builder version 3.1.1. رفع گردیده‌­اند. یعنی تنها راه رفع این مشکل بروزرسانی این افزونه است. لطفا بروزرسانی کنید! افزونه Duplicator به مدیران سایت کمک می­‌کند تا سایت­‌های وردپرس خود را از روی هاستی به هاست دیگر انتقال دهند یا و از سایت خود کپی کنند. بخشی از این قابلیت‌­ها شامل انتقال پایگاه داده و محتوای پرونده­‌ها به مکانی دیگر است. هنگامی که ادمین یک نسخه جدید از سایت خود ایجاد می­‌کند، Duplicator به او اجازه می­‌دهد تا فایل‌­های تولید شده را از داشبورد وردپرس خود بارگیری کند.این به عنوان یک درخواست AJAX در رابط مدیر سایت Duplicator انجام می‌­شود. دکمه‌­های دانلود هر یک با عملکرد duplicator_download و file، تماس با کنترلر وردپرس AJAX را ایجاد می‌­کنند، و موقعیت مکانی که بارگیری انجام شده است را نشان می‌­دهد. در صورت کلیک، فایل درخواستی بارگیری می­‌شود و کاربر، دیگر نیازی به بستن یا لود مجدد صفحه فعلی خود ندارد.متأسفانه ، عملکرد این کد duplicator_download از طریق wp_ajax_nopriv_ ثبت شده است و در دسترس کاربران غیرمجاز خواهد گرفت. از آن بدتر این است که، هیچ اعتبارسنجی، مسیرهای بارگیری پرونده را محدود نکرده‌­اند. پارامتر file از طریق sanitize_text_field منتقلمی‌­شود و به پلاگین DUPLICATOR_SSDIR_PATH اضافه می‌گردد، اما رد و بدل کردن این موارد همچنان ممکن است. یک مهاجم می‌­تواند با ارسال مقادیری مانند ../../../file.php ، به پرونده­‌های خارج از فهرست در نظر گرفته شده توسط Duplicator دسترسی پیدا کند تا به ساختار پرونده­‌های موجود در سرور دسترسی داشته باشد.علاوه بر عملکرد AJAX، نقص­‌های یکسانی نیز در تابع ()duplicator_init وجود دارد، که توسط اشاره­‌گر”init” وردپرس فراخوانی می‌شود. راه مقابله با این مسئله نیز بروزرسانی افزونه است. پس حواستان باشد، اولا اطلاعات خوبی درباره افزونه‌ای که نصب می‌کنید داشته باشید و هم به محض اینکه نسخه جدیدی داد آن را تست کرده و عملیات بروزرسانی افزونه‌ها را انجام دهید تا مشکلات امنیتی را از سایت خود دور سازید.