Dạo gần đây, có rất nhiều website sử dụng Plugin Duplicator để backup và bung file . Plugin này có lợi thế là nhanh, gọn, không cần tùy chỉnh nhiều. Thực tế, lỗi cũng không hẳn do Duplicator, mà do ở bước cuối, các bạn quên đi thao tác Remove Installer File, dẫn đến website bị hack. Dẫn chứng là hơn 120 themes demo của mình đều sử dụng Duplicator, nhưng không có website nào bị lỗi trong đợt này. Hôm nay, mình viết bài này để hướng dẫn các bạn cách xử lý, nếu chẳng may gặp phải trường hợp này. Cách xử lý này, có thể không triệt để, tùy theo từng trường hợp, ví dụ như Website nằm trên 1 host có nhiều web, và tất cả các web đều bị nhiễm, dẫn đến bị local attack . Do đó, nếu đã thực hiện theo các bước trên đây mà vẫn bị lại, các bạn có thể di chuyển toàn bộ web sang 1 host mới , độc lập, chỉ chứa duy nhất 1 website, sau đó làm tuần tự lại các bước phía trên, và theo dõi trong vòng 2-3 ngày để chắn chắn nhé !
Điểm khó chịu của con shell này là nó có chèn 1 đoạn script vào tất cả các bài viết, tất cả các trang. Do đó, một số trường hợp dù đã bung code sạch, nhưng vì export bài viết cũ qua và import vào lại, nên lại bị dính tiếp.
Tùy theoi mỗi trường hợp, mà đoạn script này có thể khác nhau, nhưng tựu chung mình đều thấy con s2.voipnewswire xuất hiện ở hầu hết các trường hợp.
Các bước xử lý:
Bước 1: Các bạn vào web, vào bài viết , hay trang bất kỳ, bấm qua phần văn bản, và kéo xuống cùng, sẽ thấy một đoạn script đã được chèn vào.
Tiến hành truy cập hosting từ Cpanel, sau đó vào phần Phpmyadmin:
Chọn database tương ứng của Web, sau đó chuyển qua tab SQL, các bạn tiến hành nhập đoạn truy vấn sau:
UPDATE wp_posts SET post_content = REPLACE (post_content, "đoạn script bị chèn", '');
Ví dụ:
UPDATE wp_posts SET post_content = REPLACE (post_content, "<script src='https://s2.voipnewswire.net/s2.js' type='text/javascript'></script>", '');
Đối với trường hợp bị chèn nhiều đoạn script, các bạn nên chạy câu truy vấn cho từng script một, sau đó kiểm tra lại các post, page, xem đã oke chưa.Thông thường tất cả các post, page đều bị chèn 1 đoạn script giống nhau, nên nếu 1 post được xóa thì hầu hết các post khác đều oke.
Bước 2: Các bạn lưu lại file wp-config.php về máy, file này mục đích để lưu lại thông tin database, sẽ sử dụng cho bước sau:
Bước 3: Sau khi đã lưu lại file Wp-config.php, các bạn tiến hành xóa sạch các file Core WordPress, chỉ chừa lại thư mục Wp-content (Thư mục này sẽ làm việc sau):
Sau khi xóa xong, các bạn lên https://vi.wordpress.org/download/ để down bản Wordpres mới nhất về, sau đó giải nén ra, bỏ đi thư mục wp-content, rồi nén lại up lên host, và tiến hành giải nén một lần nữa trên host.
Sau đó các bạn copy một file wp-config.php ở một web sạch qua, và đổi thông tin database lại như thông tin đã lưu ở bước 1.
Bước 4: Bước này sẽ tiến hành làm việc trên thư mục Wp-content.
- Ở thư mục Wp-content/Plugin , nếu các bạn có lưu bản Plugin chắc chắn sạch, thì hãy xóa toàn bộ Plugin hiện tại này, và chép bản sạch thay vào. Nếu không lưu bản backup sạch, các bạn chịu khó lưu tên các Plugin này lại, và xóa hết các Plugin hiện tại đi, sau khi vào admin sẽ tiến hành cài lại.
- Ở thư mục Wp-content/Themes, nếu các bạn có lưu thư mục themes sạch, hãy xóa toàn bộ các themes hiện tại , và chép bản sạch thay vào. Nếu không lưu bản backup sạch, các bạn hãy tiến hành rà soát các file Functions.php, header.php , Footer.php của themes, kiểm tra kỹ xem có đoạn script nào khả nghi không và xóa chúng đi ngay lập tức.
Sau 4 bước này xem như tạm yên tâm. Các bạn có thể theo dõi web trong 2-3 ngày xem tình hình thế nào. Nếu không có gì xảy ra thì chúc mừng bạn nhé ^^.