نقص وردپرس اصلاح نشده می تواند به هکرها اجازه دهد تا پسورد ادمین را مجدداً تنظیم کنند

 | تاریخ ارسال: 1396/2/22 | 

آسیب پذیری وردپرس، مشهورترین سیستم مدیریت محتوا (CMS) در دنیا، به هکرهای راه دور اجازه می دهد تا تحت شرایط خاص پسورد کاربران هدف را مجدداً تنظیم کنند.

آسیب پذیری (CVE-2017-8295) حتی بعد از درک این موضوع که می تواند تمام ورژن های وردپرس شامل آخرین ورژن 4.7.4 را تحت تاثیر قرار دهد خطرناک تر می شود.

نقص وردپرس در جولای سال گذشته توسط یک محقق لهستانی به نام Dawid Golunski که از هکرهای قانونی است کشف و به تیم امنیتی وردپرس گزارش شد ولیکن آنها تصمیم گرفتند این مساله را نادیده بگیرند و میلیون ها وب سایت را آسیب پذیر رها کنند.

" این مساله چندین بار به تیم امنیتی وردپرس گزارش داده شد و نخستین گزارش در جولای 2016 ارسال شد. این آسیب پذیری هم از طریق ایمیل امنیتی و هم از طریق وب سایت HackerOne گزارش شد" ، Golunski یک توصیه عمومی نوشت و درست زمانی که مشاهده کرد  هیچ پیشرفتی در این مورد اتفاق نمی افتد بدون یک پچ رسمی آن را برای عموم منتشر کرد. Golunski همان محققی است که یک آسیب پذیری بسیار مهم را در کتابخانه متن باز PHPMailer کشف کرد که به هکرهای بدخواه اجازه می داد تا کد دلخواهی را در زمینه سرور اجرا کند و به اپلیکیشن تحت وب هدف لطمه بزند.

این آسیب پذیری در شیوه ای که وردپرس درخواست تنظیم مجدد پسورد  را پردازش می کند نهفته است.به طور کلی وقتی کاربری  از طریق گزینه فراموش کردن پسورد، برای تنظیم مجدد پسورد درخواست می دهد ، وردپرس بلافاصله یک کد منحصربفرد را تولید و به ID ایمیل کاربر که در پایگاه داده ذخیره شده است ارسال می کند.

این آسیب پذیری چگونه است؟

در طول ارسال این ایمیل ، وردپرس از متغیری به نام SERVER_NAME استفاده می کند تا نام میزبان سرور را بدست آورد و مقدار فیلدهای From/Return-Path را تنظیم کند.

 

در اینجا From به آدرس ایمیل فرستنده اشاره می کند و Return-Path به آدرس ایمیل جایی که ایمیل های bounce-back باید تحویل داده شود (در حالتی که به دلایلی تحویل ناموفق باشد) اشاره می کند.

طبق گفته Golunski یک هکر می تواند هم زمان با آغاز فرایند تنظیم مجدد پسورد برای کاربر ادمین، یک درخواست HTTP جعلی را با یک نام میزبان سفارشی (برای مثال attacker-mxserver.com) ارسال کند.

از آنجایی که نام میزبان در یک درخواست HTTP بدخواه ، دامنه تحت کنترل هکر،  است فیلدهای Form و Return-Path در ایمیل تنظیم مجدد پسورد تصحیح می شود تا شامل یک ID ایمیل مربوط به دامنه هکر باشد برای مثال  wordpress@attacker-mxserver.com به جای wordpress@victim-domain.com .

به دلیل هدر تصحیح شده HOST ، SERVER_NAME به نام میزبان انتخابی توسط هکر تنظیم خواهد شد. در نتیجه وردپرس هدرها و بدنه ایمل را به  /usr/bin/sendmail پاس خواهد داد.

توجه کنید که ایمیل تنظیم مجدد پسورد تنها به آدرس ایمیل قربانی تحویل داده خواهد شد اما از انجایی که حالا فیلدهای From و Return-Path به ID ایمیل هکر اشاره می کند ، هکر می تواند تحت سناریوهای زیر کد تنظیم مجدد را دریافت کند :

1.  اگر در این حالت قربانی به آن ایمیل پاسخ دهد ، به ID ایمیل هکر تحویل داده خواهد شد که شامل یک لینک تنظیم پسورد مجدد در تاریخچه پیام است.

2.  اگر به دلایلی، سرور ایمیل قربانی از کار بیفتد، ایمل تنظیم مجدد پسورد به طور خودکار به آدرس ذکر شده در فیلد Return-Path که به صندوق پستی هکر اشاره می کند می رود.

3.  در دیگر سناریوی ممکن ، هکر می تواند یک حمله DDoS به سرور ایمیل قربانی انجام دهد یا تعداد زیادی ایمیل ارسال کند به گونه ای که اکانت ایمیل قربانی نتواند برای مدتی پیامی دریافت کند و ایمیل bounce-back به فیلد Return-Path که به صندوق پستی هکر اشاره می کند می رود.

Golunski در یادداشتی در Hacker News بیان داشت : حمله The CVE-2017-8295 می تواند هم با تعامل کاربر(کاربر سناریوی پاسخ به ایمیل را مرتکب می شود) و یا بدون تعامل کاربر(پر شدن صندوق اسپم قربانی) انجام شود.

حقیقت دیگری که باید ذکر شود این است که سواستفاده موفق از این نقص به این وابسته است که، حتی اگر وب سایت وردپرس دچار نقص باشد، همه وب سرورهای شامل WordPress میزبان شده روی هر سرور اشتراکی اجازه اصلاح نام میزبان از طریق هدر SERVER_NAME را داشته باشند.

هدر سرور SERVER_NAME می تواند روی پیکربندی پیش فرض وب سرور Apache با استفاده از هدر HOST یک درخواست HTTP دستکاری شود.

به ادمین های وردپرس توصیه شده است تا پیکربندی سرورشان را به روزرسانی کنند تا UseCanonicalName را قادر سازند تا مقدار ازپیش تعیین شده یا ثابت SERVER_NAME را تقویت کند.

 




CAPTCHA
دفعات مشاهده: 6923 بار   |   دفعات چاپ: 884 بار   |   دفعات ارسال به دیگران: 0 بار   |   0 نظر