LoginSignup
6
8

More than 3 years have passed since last update.

[wordpress]index.phpが改ざんされて無関係のページにリダイレクトされる

Last updated at Posted at 2019-04-13

友人が運営するwordpressサイトがハッキングされていました。

ざっと調べたところよくある問題のようです。どのサイトでも発生する可能性があると思われるので、そのサイトの情報は伏せた上で、症状と対処を共有しておきます。

security - My site is infected with obfuscated PHP malware - what is it doing + how do I get rid of it? - Stack Overflow

どういう経路で改ざんされたか未特定なので対症療法的な対処です。(なんらかの脆弱性を突かれたとした場合、そこを塞ぐのが根本対応となります)

環境

  • PHP 5.6.40
  • WORDPRESS 4.9.10
  • さくらレンタルサーバ

症状

そのサイトにアクセスすると「時々」、無関係なページ(多くはショッピングサイト)にリダイレクトされる。

原因

index.phpwp-settings.phpが改ざんされて、不正なコードが実行されるようになっていました。(コメント欄でwp-config.phpも改竄されたというご報告もいただきました)

具体的には、以下のようなコードがファイルの先頭(<?phpの後)に挿入されています。(include命令のハイフンは実際には存在しません)

index.php
/*5cadc*/

@i-nclude "\057ho\155e/\...中略.../.\0671b\143bc\1452.\151co";

/*5cadc*/
wp-settings.php
@include "\057h\157m\145/\...中略...\157r\057.\0671\142c\142d\1453\056i\143o";

このコードをデコードすると、以下のようになります。

@i-nclude /home/...中略.../.71bcbce2.ico
@i-nclude /home/...中略.../.45f02abd.ico

この .71bcbce2.ico ファイルは実際はPHPファイルでevalを含むコードが記載されていて、これによりリダイレクトしているようです。

phpタグではじまる難読化されたコード 

e-val(rawurldecode($_b6zpgi5) ^ substr(str_repeat($_tzdfh, (strlen($_b6zpgi5)/strlen($_tzdfh)) + 1), 0, strlen($_b6zpgi5)));

続く

対処

index.phpに挿入されたコードを削除すればリダイレクトされてしまう問題は解消されます。

icoファイルも削除します。

サイトの最上位ディレクトリで以下のコマンドを実行して、他にも同様の改ざんがないか確認します。

find . -name '*.php' | xargs grep 151co
find . -name '*.php' | xargs grep 143o

繰り返しになりますが、これは対症療法であり根本的には脆弱性をふさぐ必要があります。

追記

改ざん・生成されたファイルの多くはWordfenceプラグインのScanで検出されますが、icoファイルは検索対象外のようで検出されませんでした。
icoファイルを探して、一つづつ確認したほうがよさそうです。

find . -name '*.ico'
6
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8