Защита от PAYDAYLOAN взлома WordPress
Вот хотелось бы поделиться горьким опытом борьбы с гнусными разработчиками плагинов, или, что менее вероятно, любителями взломать wordpress.
Не так давно заметил у себя на сайте код, который начинается с и далее вставлены блоки со сгенерированными id и ссылка на сайт мошенников.
Я предпринял меры, так как думал, что каким-то образом взломали БД или сайт, – поменял все пароли на всех сайтах, проверил .htaccess, но, что вы думаете? – через пару дней снова этот же блок появился.
Решение далось непросто, т.к. источника я так и не нашел.
Код подключался в конце header.php, и я просто:
1. переименовал header.php в somename.php
2. создал чистенький header.php и прописал
<?php include('somename.php');?>
Вот уже неделю никаких внешних ссылок и прочего хлама.
[update 26/05/2013]
Как ни странно, спустя дней 10 опять ссылки на payday loan появились, причем уже новые, т.е. не < ! –wordpress hide — > было, а < ! — [уникальный код] — > и далее ссылки.
Кроче пришлось просканировать блог на изменения в ядре системы, и выяснилось, что был изменен upgrade.php файл и ссылка левая стояла.
Теперь я сделал следующее:
1. изменил все секретные фразы в wp-config.php
2. изменил пароль админа
3. изменил пароль на хостинг
4. изменил пароль на базу данных
Никаких Base64 не нашел на блоге (кроме phpmailer’а), и где еще искать даже не знаю.
Пытаюсь найти способ отследить время изменения header.php и соединений с сервером, если это было внутри, то будет проще, если извне, то хотя бы виновника найду сразу…
[update 04/06/2013]
Все по-прежнему отлично. Рекомендую плагин wordfence, с помощью которого можно узнать изменения системных файлов WordPress и вернуть их в исходное состояние.
[update 18/06/2013]
Опять появился код, но в этот раз больше времени прошло. И опять все теже несколько сайтов, причем они самые посещаемые.
Wordress и плагины обновлены до последних версий, кроме некоторых, но те проверенные.
Нашел временный выход из ситуации: после того, как в header.php вы прописали подключение другого файла, допишите следующее:
<script>/*
А ВО ВСЕХ файлах, что подгружаются после header.php (page,single,archive,404 и другие) после get_header() подключения:
*/</script>
Это все в обычном html.
Теперь, когда эта гадость снова добавится в header, она окажется внутри закомментированной строчки скрипта.