「サイトを開くと知らないサイトに飛ばされる」は、WordPress全体が壊れているのではなく、どこか1箇所が書き換えられていることがほとんどです。 厄介なのは、書き換えた側が運営者に気づかれないよう条件を付けていること。だから自分で見ると正常に見えます。この記事は、その1箇所を見つけて塞ぐまでの手順です。
自分のパソコンでは再現しないのはなぜか?
攻撃した側が、わざと「運営者には見せない」ようにしているからです。 気づかれた瞬間に駆除されてしまうため、転送する相手を絞り込むのが一般的な手口です。
WordPressの管理画面にログインしたままだと正常に見える。運営者がまず引っかかる落とし穴
Googleの検索結果を経由した訪問者だけを転送する。URLを直接入力すると再現しない
パソコンでは正常、スマホだけ転送される。指摘を受けても運営者側で確認できない
一度転送した相手は覚えていて、以降は正常に表示する。「直った」と誤解しやすい
確認するときは、この条件を意図的に外します。
- ログアウトした状態で見る — 別のブラウザ、またはプライベートウィンドウ(シークレットモード)で開く
- スマートフォンの回線で見る — Wi-Fiを切って、モバイル回線から開く
- 検索結果から入る — 「サイト名」で検索し、検索結果のリンクをたどって開く
ポイント: ここで再現しなくても「異常なし」とは言い切れません。訪問者から指摘されている、サーバー会社から警告が届いた、といった事実があるなら、見えなくても起きていると考えて調べます。
どこが書き換えられているのか?
転送を仕込める場所は限られています。「プラグインを全部見たのに見つからない」となる原因は、たいてい下の4番目と5番目です。
データベース(サイトの文章や設定を保管している場所)に記録されたサイトのURLそのものが、別のURLに書き換えられているケース
サーバーの動作を決める設定ファイル。ここに転送の命令が1行足されているだけで、WordPressに触れずに飛ばせる
デザインを構成するファイル(functions.php や header.php)に、転送用のプログラムが追記されている
投稿や固定ページの本文そのものに転送用のスクリプトが埋め込まれている。ファイルを全部調べても見つからない
「必ず読み込まれるプラグイン」用の特別なフォルダ。通常のプラグイン一覧とは別扱いで、管理画面から停止できない
⑤の mu-plugins(must-use plugins)は、もともと WordPress に用意されている正規の仕組みです。ただし「一覧に並ばず、停止ボタンも無い」という性質があるため、隠し場所として使われることがあります。普段このフォルダを使っていないのに中身がある場合は、要確認です。
まず何をすればいいか?
見つけたファイルをすぐ消したくなりますが、その前に記録します。 消してしまうと、原因の特定も、どこまで被害が及んだかの確認もできなくなります。
- 症状と条件を記録する — いつ気づいたか、どの条件で再現するか、転送先のURL、警告メールの内容。スクリーンショットで残す
- サイトを一時的に閉じる — 訪問者を怪しいサイトへ送り続けないことが最優先
- パスワードを一斉に変更する — 管理画面・サーバー・FTP・データベース。使い回している他のサービスも変える
- バックアップの有無と「日付」を確認する — 改ざんされる前のものかどうかが分かれ道。改ざん後のバックアップから戻しても意味がない
ここから先の復旧の進め方は、WordPressが乗っ取られたら に手順としてまとめてあります。転送に限らず、改ざん全般に共通する流れです。
消したのに、また元に戻るのはなぜか?
転送の表示が消えることと、侵入経路が塞がれることは別物だからです。 表面の1箇所を消しても、入り口が残っていれば同じ状態に戻されます。
| 残りがちなもの | 何が起きるか |
|---|---|
| バックドア | 再侵入用の小さなプログラムが別の場所に残っている。パスワードを変えても入られる |
| 追加された管理者アカウント | 正規のログイン手段として残る。ユーザー一覧に見慣れない名前がないか確認する |
| 定期実行への仕込み | WordPressには時間になると処理を動かす仕組みがあり、そこに再設置の命令が登録されていることがある |
| 古いプラグイン・テーマ | そもそもの侵入口。ここを塞がないと、別の手口で何度でも入られる |
「消したら直った」で終わらせないこと。 転送が消えた後に、不審な管理者アカウント・見覚えのないファイル・停止したはずのプラグインの残骸まで確認して、ようやく一区切りです。
Googleに警告が表示されてしまったら?
転送を放置すると、検索結果に警告が出たり、ブラウザが赤い画面を出したりすることがあります。この場合は、駆除しただけでは警告は消えません。
- Search Consoleの「セキュリティの問題」を確認する — Googleが何を検知しているかがここに表示される
- 原因を駆除し、再発しないことを確認する — 直っていない状態で次に進むと、審査で戻されて時間を余計に失う
- 再審査をリクエストする — 同じ画面から申請できる。何を直したかを具体的に書く
- 結果を待つ — すぐには反映されない。何度も申請を出し直さず、待つ
自分でやるか、頼むか?
| 状況 | 判断の目安 |
|---|---|
| 改ざん前のバックアップがあり、症状も単純 | 復元して更新すれば戻せる可能性がある |
| バックアップが無い/どこが原因か特定できない | 探すほど時間を失いやすい。相談を検討する段階 |
| 駆除しても繰り返す | バックドアが残っている可能性が高い。範囲の調査が必要 |
| 会員情報・問い合わせ履歴などを扱っている | 情報流出の可能性の確認が先。自己判断で公開を再開しない |
「よく分からないまま触り続ける」のが、いちばん状況を悪くします。 手が止まったら、そこで一度切り上げるほうが結果的に早く済むことが多いです。
まとめ
- 転送されるのに自分では再現しない場合、ログアウト・スマホ回線・検索経由で確認する
- 仕込み先は5箇所に絞れる。記事本文の中と mu-plugins は見落としやすい
- 消す前に記録する。消した後では原因も被害範囲も追えなくなる
- 元に戻るのはバックドアが残っているサイン。 表示が直ることと、塞がることは別
- 予防の具体策は WordPressの脆弱性対策 に整理しています
JIT株式会社では、改ざんの原因調査・駆除・再発防止の設定までご相談を受け付けています。「症状は出ているが、どこを見ればいいか分からない」という段階でも構いません。現状の把握から始めたい場合は サイト診断 もご用意しています。