هشدار! هکرها می ‏توانند گذرواژه کاربران سایت ‏هایی که با وردپرس نوشته شده ‏اند را تغییر دهند

وردپرس محبوب‌ترین سیستم مدیریت محتوا (CMS) در جهان، با داشتن یک آسیب‌پذیری منطقی به هکر این امکان را می‌دهد که گذرواژه‏ ی کاربر را تغییر دهد. خطر این آسیب‏ پذیری (CVE-2017-8295) زمانی مشخص می‏ شود که بدانید همه ی نسخه ‏های وردپرس حتی آخرین نسخه یعنی نسخه ۴.۷.۴ هنوز این آسیب پذیری را دارند. این آسیب پذیری سال گذشته توسط یک محقق لهستانی در زمینه امنیت به نام David Golunski کشف شد و همان زمان به تیم امنیت وردپرس گزارش شد، اما تیم امنیتی وردپرس تصمیم گرفتند آن را نادیده بگیرند و میلیون‌ها وب سایت اینترنتی وردپرسی را آسیب‌پذیر نگه دارند!


زمانی که یک کاربر با استفاده از گزینه ‏ی بازیابی گذرواژه، درخواست بازیابی گذرواژه را صادر می ‏کند، وردپرس یک کد محرمانه تولید و آن را برای آدرس ایمیل کاربر (که در پایگاه داده ذخیره شده) ارسال می‏ کند. هنگام ارسال این ایمیل، وردپرس از یک متغیر به نام  SERVER_NAME استفاده می‌کند تا نام هاست (Hostname) را به دست آورده و در جایی دیگر از آن استفاده کند ( در قست From ایمیل یا همان نام سایت مبدأ ارسال کننده ایمیل).

در شکل زیر، From  به آدرس فرستده ایمیل اشاره دارد و Return-Path به آدرس ایمیلی اشاره دارد که اگر ایمیل اصلی توسط مقصد دریافت نشد، ایمیل به آن ارسال شود ( در تصویر برای جلوگیری از انتشار کامل آسیب پذیری، قسمت Return-Path آورده نشده). براساس اظهارات Golunski، هکر می‌تواند یک بسته درخواست HTTP آلوده که در آن hostname تغییر کرده (attacker-mxserver.com) ارسال کند. از آنجایی که نام هاست وارد شده در این بسته HTTP تحت اختیار هکر است، قسمت From و Return-Path در آن تغییر کرده و برابر است با دامنه ‏ای که تحت کنترل هکر است، مثلاً wordpress@attacker-mxserver.com به جای wordpress@victim-domain.com. بنابراین متغیر SERVER_NAME برابر می‌شود با آن مقداری که هکر انتخاب کرده و نتیجه اینکه وردپرس این headerها و ایمیل را به ‎/usr/bin/sendmail  می‌فرستد تا عملیات ارسال ایمیل شروع شود.

 

 

لازم به ذکر است که ایمیل بازیابی گذرواژه فقط برای ایمیل قربانی ارسال می ‏شود، اما چون مقدار From و Return-Path به شناسه‏ ی ایمیل هکر اشاره می‏ کند، هکر هم می‌تواند کد بازیابی گذرواژه را دریافت کند، البته تحت شرایط زیر:

۱-    اگر قربانی به این ایمیل پاسخ بدهد، ایمیل توسط شناسه‏ ی ایمیل هکر دریافت می‌شود (چون From برابر ایمیل هکر است)،  که این ایمیل شامل لینک بازیابی گذرواژه در تاریخچه پیام است.

۲-    اگر به هر دلیلی، سرور ایمیل قربانی پاسخگو نباشد، ایمیل حاوی لینک بازیابی گذرواژه به ایمیلی که در قسمت Return-Path نوشته شده ارسال می‌شود (که به این عملیات، عملیات bounce-back گفته می‏ شود)، که این ایمیل در‌واقع همان ایمیلی است که هکر مشخص کرده است.

۳-    در سناریوی محتمل دیگر، برای دریافت ایمیل bounce-back، هکر می‌تواند یک حمله تکذیب سرویس توزیع شده (DDOS) روی سرور ایمیل قربانی اجرا کند یا اینکه تعداد زیادی ایمیل به آن ارسال کند، بنابراین، حساب کاربری قربانی دیگر هیچ ایمیلی را نمی‌تواند دریافت کند و در نتیجه عملیات bounce-back اجرا خواهد شد.

اما نباید یک نکته را نادیده گرفت که اجرای موفقیت ‏آمیز حمله به آن بستگی دارد. لازم به ذکر است که حتی اگر سایت وردپرسی دارای این آسیب‌پذیری باشد، همه‏ ی وب سرورها اجازه ‏ی تغییر در محتوای بسته HTTP با استفاده از متغیر SERVER_NAME  را نمی‏ دهند، مانند سایت‌های وردپرسی که روی هاست‏ های اشتراکی قرار دارند.

 

چون هنوز این آسیب‌پذیری به طور رسمی توسط هیچ وصله امنیتی توسط تیم وردپرس رفع نشده است، مدیران وردپرس توصیه کرده‌اند که صاحبان سایت‌های وردپرسی، تنظیمات سرور خود را به روز کرده و گزینه‏ ی UseCanonicalName را فعال کنند تا مقدار SERVER_NAME را ایستا کند و مقدار این متغیر قابل تغییر نباشد.

 

منبع:

http://certcc.ir/web/guest/news