連載
» 2013年10月29日 18時00分 UPDATE

試してみなけりゃ分からない? 古いWebアプリの脆弱性(4):書き換え事件でも使われた? WordPressプラグインの脆弱性とシンボリックリンク (1/4)

今回は、多くのユーザーを持ち、それだけに多くの脆弱性が発見されているCMS「WordPress」とそのプラグインの脆弱性を検証してみる。

[山本洋介山(bogus.jp),@IT]

 前回の記事「CMSに残る反射型XSSを使ったセッションハイジャック」でも紹介したとおり、CMS(Contents Management System)の脆弱性を狙った攻撃が後を絶たないようだ。

 中でも話題となっていたのが、共用レンタルサーバを狙った広範囲の書き換え攻撃だ。「共用」という性質もあって、同一のサーバを使用していた複数のユーザーのデータが横断的に書き換えられた点が、2010年代には逆に新しい。この事件で、忘れかけていた昔の設定方法を思い出した方も多かったのではなかろうか。どうやらこの事件を起こしたのは愉快犯だったらしく、書き換え以外に大きな実害はなかったようだが、それでも今さらながら、共用レンタルサーバの怖さに気づいた人も多いかもしれない。

 いずれにせよ、JPCERTやIPAからも注意喚起が出ている通り、日本のサイトが広く攻撃対象になっている。使用しているCMSのアップデート情報をこまめにチェックしてアップデートしていただきたい。

 CMSの中には、WordPressのように、アップデートを通知してくれるものもある。とはいえログインしないとアップデート状況は分からない。更新していないCMSに毎日ログインするのはおっくうな作業かもしれないが、そこは我慢して、日々チェックとアップデートを欠かさないことが重要だ。

注意喚起情報

IPA:ウェブサイト改ざん等のインシデントに対する注意喚起〜ウェブサイト改ざんが急激に増えています〜

http://www.ipa.go.jp/security/topics/alert20130906.html

JPCERT/CC:ウェブサイト改ざん等のインシデントに対する注意喚起〜ウェブサイト改ざんが急激に増えています〜(PDF)

https://www.jpcert.or.jp/press/2013/PR20130906-alert.pdf


 さて、今回はWordPressの古いプラグインの脆弱性を突いて、第三者がファイルをダウンロードしたりアップロードしたりできることを検証してみたいと思う。

WordPress本体以上に注意が必要な「プラグイン」

 WordPressはおそらく、世界で最も使われているオープンソースのブログツールだろう。CMSとして利用している人や会社も多い。

 現在のバージョンは3.6.1(2013年10月現在)。最初のリリースは2003年なので、公開されてからもう10年になるが、その間、頻繁にアップデートが繰り返されており、本体の脆弱性は他のCMSに比べると少なくなっているように思われる。

 WordPressの特徴として、誰でもプラグインを公開でき、このプラグインを使って好きな機能を追加できることが挙げられる。WordPressの標準機能になくとも、プラグインを追加すればやりたいことができるのだ。

 しかもユーザーが多いだけあって、多数のプラグインが日々公開されている。WordPressに登録されているプラグインならば、WordPressのダッシュボードから簡単に導入できるようになっている。

 しかしながら一方で、このプラグインには多数の脆弱性が見つかり、情報も公開されている。本体はそれなりに安心だが、プラグインの方には細心の注意が必要なのだ。そこで今回はその危険性を検証すべく、このプラグインの脆弱性を突いて侵入を試してみることにする。

 なお、脆弱性が公開されたプラグインについてもアップデートが行われ、これまた自動的にダッシュボードから更新できるようになっているので、日々ダッシュボードを見ていれば安心だ。

検証用環境の構築

WordPressのダウンロードと配置

 プラグインの脆弱性を突く前に、まずWordPressをインストールしないと始まらない。早速インストールすることにする。環境は前回に引き続き、Ubuntuにインストールしたlamppだ。導入については第1回の記事をご覧いただきたい。

http://ja.wordpress.com/

から日本語版をダウンロードする(英語版でもかまわない)。ここではZIPをダウンロードした。適当な場所で解凍して、/opt/lampp/htdocs/に移動させる。

vuln04_scr01.png 画面1 WordPressのWebサイト
$ sudo unzip wordpress-3.6.1-ja.zip
$ sudo mv /home/user/ダウンロード/wordpress /opt/lampp/htdocs/wordpress 

 そして、Webサーバを動かしているnobodyユーザーから書き込みできるようにディレクトリ設定を変更する。「誰でもアクセス可能」という非常にざっくりした設定なので、実運用の場合はもう少し安全面を考えて設定しよう。

$sudo chmod -R 777 /opt/lampp/htdocs/wordpress

 そしてlamppを起動しておこう。

$ sudo /opt/lampp/lampp start

データベースの設定

 次に、WordPressに使用するデータベースの設定を行う。rootユーザーを使ってもいいが、WordPress用のユーザーとデータベースを作成しておくことにする。

 データベースの設定は、これまでどおりphpmyadminから行う。

 メニューの「ユーザ」をクリックし、「ユーザを追加する」をクリックすると、「ユーザを追加する」ダイアログが開く。そこに好きなユーザー名とパスワード、ホストは「ローカル」を入力し、「ユーザ専用データベース」で「同名のデータベースを作成してすべての特権を与える」を選び、「ユーザを追加する」ボタンをクリックする。

vuln04_scr02.png 画面2 WordPress用のデータベースを作成する
       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。