Все о WordPress: плагины, шаблоны, темы и настройка

Взлом WordPress!

Взлом WordPress
За прошедшие выходные от взлома пострадал не один десяток блогов. Взлому подвергались почти все блоги на которых был установлен WordPress от версии 2.2.3 до версии 2.8.3 (версия 2.8.4 не имеет данной уязвимости).
Уязвимость заключается в том что, червь регистрируется у Вас в блоге (не важно включена ли регистрация или нет), попадает на страницу постоянных ссылок (permalink) и добавляет в них вредоносный код. Затем повышает себя до уровня админа и при этом скрывает свое существование, т.е. в списке пользователей его видно не будет. После этого вирус добавляет спам ссылки в архивные топики.

Обнаружить взломан Ваш блог или нет можно по выполнив следующие действия:
1) Проверить структуру ЧПУ (Админка - Параметры - Постоянные ссылки) на вредоносный код по типу:
/%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}} - если он есть то убрать его. (восстановив прежний вид ЧПУ).

2) Проверить количество администраторов блога (Админка - Пользователи - вверху страницы строка со всеми пользователями и их количеством), убедиться что на блоге только ОДИН администратор. Если администраторов больше одного то нужно удалить лишних, при этом в списке пользователей их может быть не видно. Существует несколько способов найти и удалить лишних админов, но на мой взгляд самый точный и самый удобный воспользоваться phpMyAdmin.

Запрос который необходимо выполнить к базе данных блога выглядит вот так:

SELECT u.ID, u.user_login
FROM wp_users u, wp_usermeta um
WHERE u.ID = um.user_id
AND um.meta_key = 'wp_capabilities'
AND um.meta_value LIKE '%administrator%';

Далее просто выбираем лишних админов и удаляем их.

Чтобы избежать повторного взлома или избежать взлом (тем кого к счаcтью не взломали) можно обновиться до версии WordPress 2.8.4. Для кого обновление это не вариант можно воспользоваться способом который придумал уважаемый Юрий Белотицкий (более известный как ЮБ). Для этого просто зайдите в папку /wp-includes/ и найдите там файл vars.php. После строки:

$pagenow = $self_matches[1];

добавьте еще одну строку

$pagenow = trim($pagenow, '/');

После этого Ваш блог должен быть защищен (на всех своих блогах я выполнил данную процедуру и тьфу-тьфу все нормально).

На этом защита (очистка) Вашего сайта завершена. Если появится еще какая либо информация я обязательно отпишусь.

Рубрика: Разное | 07 Сентябрь 2009

Предыдущие записи из рубрики `Разное`

21 комментарий

Neolot, 08.09.2009 в 11:54Ответить

У меня 2.8.3 и эта строка есть, странно...

coyc, 08.09.2009 в 17:23Ответить

Мораль сей басни такова... ставьте обновления сразу :-D
на блогах все пучком, стоит последняя версия :)

Deimos, 08.09.2009 в 19:02Ответить

Neolot, посмотрел действительно есть, в 2.8.2 уже точно нет. Но однако вроде я слышал что блог на 2.8.3 тоже ломали, хотя может и путаю. На 2.8.2 точно ломали - читал на одном из блогов.

coyc, тут ты тоже не совсем прав, даже посмотреть как появлялась версия 2.8, одна за другой уязвимостью... Тут наверное золотой серединой будет обновляться, но не сразу, но в это время почитывать блоги, и установить пару простейших плагинов,анти-хсс, беливар, бэкапить базу и т.д. и тогда можно ничего не боятся 8)

seoded, 08.09.2009 в 21:37Ответить

Какой гадкий червечишко! =) Ишь чего удумал - блоги ломать.

Agudo, 09.09.2009 в 04:28Ответить

А что слышно про версии ниже второй? у меня стоят 1.5.2, обновляться совсем не хочется 8)

Deimos, 09.09.2009 в 10:12Ответить

Agudo, ничего не слышал... WordPress 1.5.2 это круто, тогда еще он кушал мало... а как так получилось что так давно не обновлялись? Много самописи ил еще что, может кините ссылочку - хоть посмотреть сайт на таком антиквариате. =)

zenith, 09.09.2009 в 10:14Ответить

Касается ли это и блогов на WordPress MU?

Deimos, 09.09.2009 в 10:56Ответить

zenith, наверника сказать не могу, но скорее всего да, проверьте vars.php на наличие строки $pagenow = trim($pagenow, '/'); если ее нет, то добавьте, хуже не должно быть ;)

alfline, 16.09.2009 в 00:20Ответить

Спасибо. Нашел администратор в базе. Удалил. Обновился.

Skop, 22.09.2009 в 15:25Ответить

Только на днях натолкнулся на такой url %&({${eval(base64_decode($_SERVER[HTTP_REFERER])) на каком-то блоге в рунете, думал бага какая-то.

Yakto, 01.12.2009 в 20:09Ответить

Спасибо за информацию по самозащите! Тока восстановил работу сайта, траффик обнулился совсем... ;(

Виталий Гуменников, 18.01.2010 в 16:49Ответить

Существует несколько способов найти и удалить лишних админов, но на мой взгляд самый точный и самый удобный воспользоваться phpMyAdmin.
Запрос который необходимо выполнить к базе данных блога выглядит вот так...
Не профессионал я совсем, нашел лишнего админа у себя. Но...
Вы объясните как и где сделать этот запрос, куда залезть(где это) и где что исправить.
Спасибо заранее за ответ!

Виталий Гуменников, 18.01.2010 в 20:21Ответить

Спасибо большое! Вот теперь все понятно. Просто не знал где находится этот phpmyadmin.

Виталий Гуменников, 18.01.2010 в 21:11Ответить

Побеспокою еще Вас. Удаляю я этого пользователя в SQL, а он мне вот что выдает и не удаляет его, что это подскажите и как быть?
SQL-запрос:

DELETE FROM `wp_users` WHERE `u`.`ID` =302 LIMIT 1

Ответ MySQL: Документация
#1054 - Unknown column 'u.ID' in 'where clause'

Виталий Гуменников, 18.01.2010 в 21:30Ответить

Все я убил этого гада. Поделюсь как это получилось у меня. По запросу автора, которым он поделился, он у меня вылез этот левый админ, я его убивать а он не поддается. В итоге пошарив еще инет, нашел следующее, что и помогло:
Открыл в базах
wp_usermeta и wp_users, а там выдало много записей на этого админа, удалил их все там, а потом уже в юзерах его и грохнул.
Ничего особенного, но тем не менее уточнение, для таких не профессионалов как я. Спасибо!

Deimos, 18.01.2010 в 20:13Ответить

Виталий Гуменников, лезть надо в phpmyadmin - путь к нему можете узнать у своего хостера (если Вы сами не знаете)... далее выбираете базу блога, входите во вкладку SQL и в появившееся поле вводите эту команду - и все ;-)

Виталий Гуменников, 19.01.2010 в 11:47Ответить

Да черт его знает... Внимание на это обратил может недели 2 назад, что админа 2, посмотрел, видно только меня было. Значения этому не придал никакого, пока не начались левые атаки на админку моего блога. Полез смотреть инфу по безопасности блога и наткнулся на этот материал, ну и все понял тогда по этим левым админам. Теперь установил всякой защиты и по спокойней стало.
Я вот задавал выше вопрос, что очистил эту гадость, блог работал и работает исправно. Обязательно необходимо обновляться, чем может отразиться пребывание этой заразы на моем блоге определенное время?

Deimos, 19.01.2010 в 11:38Ответить

Виталий Гуменников, поздравляю с избавлением от этой заразы, сайт то у Вас давно заразился?

Алексей, 22.01.2010 в 16:53Ответить

Блин, а мне вот не помогает... Админов нет. Код весь вычищаю, путем копирования файлов на комп. Потом в каждом файле удаляю сторочки с лишним кодом (программой TextReplacer). Потом перезаливаю. Неделю работает нормально, а потом опять фигня такая... Код вида "*/GNU GPL/*..."

Сегодня какой-то другой вылез... Но тоже такого вида, с теми же попытками сходить на какой-то ресурс. NOD32 пока пресекает эти попытки, но надолго ли...

Версия WordPress - 2.9

Виталий Гуменников, 22.01.2010 в 20:16Ответить

Я поставил антивирус на блог, плюс еще файервол. Антивирус нашел левые коды один раз как установил его. Я вычистил, все проблем нет. Проверяю теперь постоянно. А файервол блокирует даже мои попытки изменить коды. Т.е забил один IP свой в разрешенные и все. Атаки он обнаруживает сразу, но таковых не было, кроме меня самого :-) А так тьфу, тьфу избавился и теперь вооружился до зубов. Плюс поставил плагин скрывающий версию вордпресса и изменил себя с имени админ на другое.

Оставить ответ

Топ комментаторов

Спасибо Вам за Ваши комментарии!

Забыли пароль?