BLOG

WordPressが勝手に別サイトへ転送される — 原因と直し方

WordPressサイトを開くと知らないサイトへ飛ばされる「リダイレクトハック」の対処法。自分の環境では再現しない理由、書き換えられている5つの場所、消したのに元に戻る原因、Googleの警告への対応までを順に解説します。

「サイトを開くと知らないサイトに飛ばされる」は、WordPress全体が壊れているのではなく、どこか1箇所が書き換えられていることがほとんどです。 厄介なのは、書き換えた側が運営者に気づかれないよう条件を付けていること。だから自分で見ると正常に見えます。この記事は、その1箇所を見つけて塞ぐまでの手順です。

自分のパソコンでは再現しないのはなぜか?

攻撃した側が、わざと「運営者には見せない」ようにしているからです。 気づかれた瞬間に駆除されてしまうため、転送する相手を絞り込むのが一般的な手口です。

ログイン中は転送しない

WordPressの管理画面にログインしたままだと正常に見える。運営者がまず引っかかる落とし穴

検索から来た人だけ

Googleの検索結果を経由した訪問者だけを転送する。URLを直接入力すると再現しない

スマートフォンだけ

パソコンでは正常、スマホだけ転送される。指摘を受けても運営者側で確認できない

同じ人には1回だけ

一度転送した相手は覚えていて、以降は正常に表示する。「直った」と誤解しやすい

確認するときは、この条件を意図的に外します。

  1. ログアウトした状態で見る — 別のブラウザ、またはプライベートウィンドウ(シークレットモード)で開く
  2. スマートフォンの回線で見る — Wi-Fiを切って、モバイル回線から開く
  3. 検索結果から入る — 「サイト名」で検索し、検索結果のリンクをたどって開く

ポイント: ここで再現しなくても「異常なし」とは言い切れません。訪問者から指摘されている、サーバー会社から警告が届いた、といった事実があるなら、見えなくても起きていると考えて調べます。

どこが書き換えられているのか?

転送を仕込める場所は限られています。「プラグインを全部見たのに見つからない」となる原因は、たいてい下の4番目と5番目です。

① サイトURLの設定値

データベース(サイトの文章や設定を保管している場所)に記録されたサイトのURLそのものが、別のURLに書き換えられているケース

② .htaccess

サーバーの動作を決める設定ファイル。ここに転送の命令が1行足されているだけで、WordPressに触れずに飛ばせる

③ テーマのファイル

デザインを構成するファイル(functions.php や header.php)に、転送用のプログラムが追記されている

④ 記事本文の中

投稿や固定ページの本文そのものに転送用のスクリプトが埋め込まれている。ファイルを全部調べても見つからない

⑤ mu-plugins

「必ず読み込まれるプラグイン」用の特別なフォルダ。通常のプラグイン一覧とは別扱いで、管理画面から停止できない

⑤の mu-plugins(must-use plugins)は、もともと WordPress に用意されている正規の仕組みです。ただし「一覧に並ばず、停止ボタンも無い」という性質があるため、隠し場所として使われることがあります。普段このフォルダを使っていないのに中身がある場合は、要確認です。

まず何をすればいいか?

見つけたファイルをすぐ消したくなりますが、その前に記録します。 消してしまうと、原因の特定も、どこまで被害が及んだかの確認もできなくなります。

  1. 症状と条件を記録する — いつ気づいたか、どの条件で再現するか、転送先のURL、警告メールの内容。スクリーンショットで残す
  2. サイトを一時的に閉じる — 訪問者を怪しいサイトへ送り続けないことが最優先
  3. パスワードを一斉に変更する — 管理画面・サーバー・FTP・データベース。使い回している他のサービスも変える
  4. バックアップの有無と「日付」を確認する — 改ざんされる前のものかどうかが分かれ道。改ざん後のバックアップから戻しても意味がない

ここから先の復旧の進め方は、WordPressが乗っ取られたら に手順としてまとめてあります。転送に限らず、改ざん全般に共通する流れです。

消したのに、また元に戻るのはなぜか?

転送の表示が消えることと、侵入経路が塞がれることは別物だからです。 表面の1箇所を消しても、入り口が残っていれば同じ状態に戻されます。

残りがちなもの 何が起きるか
バックドア 再侵入用の小さなプログラムが別の場所に残っている。パスワードを変えても入られる
追加された管理者アカウント 正規のログイン手段として残る。ユーザー一覧に見慣れない名前がないか確認する
定期実行への仕込み WordPressには時間になると処理を動かす仕組みがあり、そこに再設置の命令が登録されていることがある
古いプラグイン・テーマ そもそもの侵入口。ここを塞がないと、別の手口で何度でも入られる

「消したら直った」で終わらせないこと。 転送が消えた後に、不審な管理者アカウント・見覚えのないファイル・停止したはずのプラグインの残骸まで確認して、ようやく一区切りです。

Googleに警告が表示されてしまったら?

転送を放置すると、検索結果に警告が出たり、ブラウザが赤い画面を出したりすることがあります。この場合は、駆除しただけでは警告は消えません。

  1. Search Consoleの「セキュリティの問題」を確認する — Googleが何を検知しているかがここに表示される
  2. 原因を駆除し、再発しないことを確認する — 直っていない状態で次に進むと、審査で戻されて時間を余計に失う
  3. 再審査をリクエストする — 同じ画面から申請できる。何を直したかを具体的に書く
  4. 結果を待つ — すぐには反映されない。何度も申請を出し直さず、待つ

自分でやるか、頼むか?

状況 判断の目安
改ざん前のバックアップがあり、症状も単純 復元して更新すれば戻せる可能性がある
バックアップが無い/どこが原因か特定できない 探すほど時間を失いやすい。相談を検討する段階
駆除しても繰り返す バックドアが残っている可能性が高い。範囲の調査が必要
会員情報・問い合わせ履歴などを扱っている 情報流出の可能性の確認が先。自己判断で公開を再開しない

「よく分からないまま触り続ける」のが、いちばん状況を悪くします。 手が止まったら、そこで一度切り上げるほうが結果的に早く済むことが多いです。

まとめ

  • 転送されるのに自分では再現しない場合、ログアウト・スマホ回線・検索経由で確認する
  • 仕込み先は5箇所に絞れる。記事本文の中と mu-plugins は見落としやすい
  • 消す前に記録する。消した後では原因も被害範囲も追えなくなる
  • 元に戻るのはバックドアが残っているサイン。 表示が直ることと、塞がることは別
  • 予防の具体策は WordPressの脆弱性対策 に整理しています
JIT株式会社

JIT株式会社では、改ざんの原因調査・駆除・再発防止の設定までご相談を受け付けています。「症状は出ているが、どこを見ればいいか分からない」という段階でも構いません。現状の把握から始めたい場合は サイト診断 もご用意しています。

NEXT STEP

「うちの場合どうなる?」も
気軽にご相談ください

要件がまとまっていなくても大丈夫。まずはお話を聞かせてください。

お問い合わせ