ワードプレスでデータベースに感染した不正なJSを一括で消す方法を解説いたします。

データベースに感染する不正なコード

データベースのマルウェアを検出できるプラグイン等でデータベースに感染したJAVASCRIPTコードが見つかることがございます。

またこういった不正なJAVASCRIPTは数千件の投稿等に埋め込まれている場合も多く、一つ一つ手作業で駆除するのが困難な場合がございます。この場合にプラグインを使い正規表現で一括除去することが可能です。

正規表現でパターンマッチして一括駆除する

正規表現とは、文字列をよりメタ的に検索できる方法で、例えば下記のような正規表現ですと数字が10個以上続く文字列にマッチさせることが出来ます。

/[0-9]{10,}/

前述のような不正なJAVASCRIPTにも一括でマッチして置き換える正規表現を創り、その正規表現を全投稿に対して実行すれば、一気に不正なJAVASCRIPTを除去することが可能です。

よくよく不正なコードを観察すると <script>$mWn= で始まり、その間に<を含まず、</script> で終わるというパターンになっているのが分かりますね。

この正規表現は下記のようにあらわせます。

/<script>$mWn=[^<]*<\/script>/

・$や/は正規表現で意味のある表現となりますのでバックスラッシュでエスケープしています
・[^<]* は <ではない文字列が続く限りという意味になります。

※正規表現はこちらのサイトで試しながら作ることが可能です。正しい範囲でマッチしているのが分かります。

正規表現でワードプレスのデータベースに感染した不正なJSを除去する

次に投稿等に埋め込まれた不正なJSを正規表現で除去します。
この除去作業は失敗するとデータベースの重要な情報が失われたりしますので、除去前にデータベースのバックアップを必ず取っていただくことをお勧めいたします。

1 データベースを正規表現で一括置換できるSearch Regexプラグインを導入します

2 ツール→Search Regexより正規表現で置き換え処理を行います
まずは下図のような設定で正規表現を設定し、操作なし としてちゃんと不正なコードにマッチしているか確認します。

次に操作を全体の文字列置換にして、置換文字列に空白文字を一つ入れ、置換を実行します。

これで不正なJSの一括除去が終わりました。

データベースのマルウェアを除去するだけでは問題が解決しない場合もございます

データベースに不正なマルウェアを埋め込まれたという事は、すでにハッカーがデータベースの捜査権限を何らかの脆弱性を利用して取得しており、他の不正なプログラムをサーバーに設置されている可能性が高いです。

他のマルウェアを検査したり、ハッカーの侵入を許した脆弱性をふさぐ作業も必要となってまいります。

難しい場合や手におえないと思ったら早めに専門家にご相談をお送りいただくことをお勧めいたします。

WordPress データベースに感染したマルウェアの除去を代行いたします。お気軽にWPドクターまでご相談・ご依頼お送りください