اخیرا یک آسیب پذیری ساده اما بسیار جدی در سیستم مدیریت محتوای محبوب وردپرس کشف شده که به عموم هکرها اجازه می دهد تا به سادگی و تنها با استفاده از یک سیستم، یک سایت مبتنی بر وردپرس در هر بستر هاست لینوکس یا ویندوز را توسط حمله نوع DoS یا Denial of service مختل یا Down نمایند. این حمله برخلاف حملات پیشرفته DDoS، حتی به پهنای باند زیاد یا سرورها یا بات های متعدد هم نیاز ندارد.
از آنجا که متولی اصلی وردپرس از ارایه Patch یا راه حل برای این آسیب پذیری (CVE-2018-6389) خودداری کرده،هم اکنون تمامی نسخه های وردپرس متعلق به 9 سال اخیر نسبت به این مشکل آسیب پذیر هستند. این آسیب پذیری شامل آخرین نسخه وردپرس، یعنی نسخه 4.9.2 نیز می باشد.
این آسیب پذیری که در فایل load-scripts.php قرار دارد، توسط محقق امنیتی، آقای Barak Tawily کشف و گزارش شده است.
فایل load-scripts.php در واقع تنها یک وظیفه دارد و آن هم کمک به مدیران سایت برای افزایش بهره وری و سرعت لود سایت خود با ترکیب کردن چند فایل Javascripts با یکدیگر در سمت سرور می باشد. اما متاسفانه طراحان وردپرس برای لود شدن فایل load-scripts.php، هیچ متد احراز هویتی در نظر نگرفته اند، لذا هر کس می تواند با فراخوانی این فایل از اینترنت، دستور ترکیب و لود چندین فایل جاوا اسکریپت را به سرور یا هاست شما ارسال کند.
فایل load-scripts.php بر اساس پلاگین ها و ماژول های مورد استفاده در سایت، فایل های جاوا اسکریپت مشخصی را در هنگام لود فراخوانی می کند و برای این کار تنها کافیست تا نام فایل های Javascripts که با Comma جدا می شوند، را توسط پارامتر load صدا بزند.
به مثال زیر توجه کنید :
https://your-wordpress-site.com/wp-admin/load-scripts.php?c=1&load=editor,common,user-profile,media-widgets,media-gallery
لذا در هنگام لود وب سایت، این فایل تمامی اسکریپت های جاوا اسکریپت فراخوانی شده در URL را پیدا کرده و پس از ترکیب تمامی آن ها در یک فایل، آن را به مرورگر کاربر ارسال می کند.
حمله DoS به سایت وردپرس چه طور عمل میکند ؟
بر اساس اعلام محقق امنیتی مذکور، یک هکر می تواند با ارایه پارامتر هایی به خصوص، فایل load-scripts.php را مجبور به لود تمامی اسکریپت های ممکن جاوا اسکریپت (حدود 181 اسکریپت ) نماید. این امر باعث می شودتا سایت هدف با مصرف بالای CPU سرور جهت لود تمام این فایل ها به مراتب کند شود.
در تست انجام شده توسط این محقق، ارسال یک درخواست برای Down نمودن سایت هدف کافی نبود و این کار صرفا، آن سایت را دچار کندی می نمود.لذا جهت تکمیل تست تحقیقاتی، این محقق اقدام به طراحی اسکریپتی به زبان پایتون (Doser.py) نمود امکان ارسال چندین درخواست متعدد و همزمان به یک URL ثابت را می داد. این امر باعث شد تا تمام CPU سرور هاست مقصد مصرف شده و سایت هدف صرف چند دقیقه به صورت کامل از کار بیافتد.
سایت hackernews.com همچنین تایید کرده که توسط این متد و استفاده از یک پهنای باند حداکثر 40 مگابیتی، موفق به از کار انداختن چندین سایت هدف تستی خود شد که بر روی چند VPS با قدرت متوسط میزبانی می شدند. البته این سایت همچنین اشاره کرده، در صورتی که سایت هدف بر روی یک سرور اختصاصی قدرتمند تر میزبانی شده باشد، نیاز به پهنای باند و تعداد سرورهای بیشتری برای از کار انداختن آن خواهند داشت.
با اینحال، هم اکنون مطمئن هستیم که تقریبا تمامی سایت های مبتنی بر وردپرس، نسبت به این مشکل آسیب پذیر هستند و حتی بزرگترین و معروف ترین سایت های وردپرسی هم که از سرورهای قدرتمند برای میزبانی خود استفاده می کنند، به راحتی توسط هکر ها قابل حمله می باشند.
با این حال متاسفانه متولی اصلی وردپرس مسئولیت این آسیب پذیری را بر عهده نگرفته و اعلام کرده که این مشکل باید از سمت سرور و شبکه مرتفع گردد.
با توجه به اینکه 29 درصد از تمام سایت های جهان از وردپرس استفاده می کنند، این آسیب پذیری می تواند نقش مهمی در امنیت کل اینترنت داشته باشد.
در حال حاضر راه حل های محدودی برای این آسیب پذیری وجود دارد. بهترین آن، استفاده از سیستم های امنیتی ضد DDoS در لایه Application، مانند سرویس تجاری Cloudflare است. از آنجا که استفاده از چنین سرویس هایی هزینه نسبتا بالایی دارد و برای تمامی وب سایت ها، ممکن نیست، محقق کاشف این آسیب پذیری همچنین یک Bash scripts ارایه کرده که با اجرای آن در سرور لینوکس خود، می توانید از بروز این آسیب پذیری جلوگیری نمایید.
این اسکریپت را می توانید از لینک دانلود نمایید.
4 دیدگاه. دیدگاه جدید بگذارید
لطفا در رابطه با نحوه ی استفاده از اسکریپت برای رفع این باگ بیشتر توضیح دهید یک بار اجرای این اسکریپت چگونه مشکل را برای تمامی سایت های وردپرسی سرور رفع میکند ؟
سعید عزیز
این اسکریپت باید برای هر سایت وردپرسی به صورت مجزا در سرور اجرا شود.
به ازای هر سایت وردپرسی، باید فایل را یکبار در پوشه روت وردپرس کپی کرده و اجرا کنید.
مطمئنا به محض انتشار بروز رسانی بهتری برای این آسیب پذیری، آن را در وبلاگ رَهام تک منتشر خواهیم کرد.
بسیارعالی، ممنون از اطلاع رسانی تون
تشکر می کنم بابت مطالب مفید سایت شما
سایت شما همیشه بهترینه