2.13.1.1.8. Заражение файла functions.php темы оформления в WordPress
Удаление вредоносного кода только из файла functions.php
, как показывает практика, не решает вопроса. Поэтому эта инструкция может быть полезной при устранении проблемы.
- Убедитесь, что файла
wp-includes/class.wp.php
нет в принципе. Если есть — удалите его. Обратите особое внимание на имя файла — в этом каталоге есть много файлов с похожим названием, но вместо точки — дефис, и т. д. Речь идёт исключительно оwp-includes/class.wp.php
. - Аналогично предыдущему пункту удалите файл
wp-includes/wp-vcd.php
, если он существует.
Примечание к первым двум пунктам: проверив официальный репозиторий WordPress, можно убедиться, что в стандартной комплектации обоих файлов нет и они являются сторонними. - Проверьте содержимое
wp-includes/post.php
. А именно — если в первой строке присутствует нечто вида:
Для убедительности пример, как выглядит файлpost.php
в стандартном виде WordPress — https://github.com/WordPress/WordPress/blob/master/wp-includes/post.php (обратите внимание на строку 1). - Пункты 1-3 должны помочь устранить причину, по которой вредоносный код может появляться в файлах
functions.php
после удаления. Осталось проверитьfunctions.php
каждой установленной темы. Самый верный способ — попробовать переустановить тему, если есть возможность. В противном случае — приведём пример заражённого файла: https://gist.github.com/alexandrpaliy/b3bb8a19433478fe32414895ad641709 — внешний вид строки 3 из данного примера является типичным признаком, чтоfunctions.php
заражён. В таком случае — удалить нужно весь блок<?php … ?>
, в котором встречается строка 3:
Выражаясь чуть проще, удалить нужно всё с начала файла и до первого сочетания символов?>
. В данном примере — это строка 100. В итоге очищенный файл будет иметь такой вид: https://gist.github.com/alexandrpaliy/95663f8dc1186cf6e4a6b725c397781b - Есть сведения, что, в некоторых случаях вирус помимо модификации файлов также пытается создать нового пользователя админ-панели сайта, предоставляя ему права администратора. Потому, имеет смысл проверить в базе данных таблицу
users
(чаще всего —wp_users
), и если в ней присутствуют незнакомые вам пользователи — рекомендуется удалить их, удалив соответствующие строки таблицы.