まずWP-FileManegerを有効化して設定を行う。
WP-FileManegerと書かれた下にある「有効化」リンクをクリックすると、プラグインが有効化される。有効化されると左下に「FileManeger」というメニュー項目が現れるので、そこにカーソルを持っていく。すると「FileManager」と「Configuration」のメニュー項目が表れるので、「Configuration」の方を選ぶ。
するとWP-FileManegerの設定画面が開く。上の方にどのファイル操作を許可するかというチェックボックスがあるので、すべてチェックを入れておく。
「チェックを入れないと脆弱性が突けないなんて、それほど脆弱とはいえないのではないか?」と思う人もいるかもしれない。しかしこのプラグインは、管理者がFTP代わりにファイル操作を行うためのもので、チェックが入っていないと操作が行えない。なので、実際に使われている環境でも普通にチェックが入っているのだ。
チェックを入れたら、一番下の「変更を保存」ボタンをクリックする。
これで準備は終了した。
この古いWP-FileManegerには、権限のない外部のユーザーが直接ファイルをダウンロードできる脆弱性がある上に、ディレクトリトラバーサルの脆弱性もある。以降はその脆弱性を突いてみることにする。
やることはとても簡単で、以下のURLをブラウザに入力するだけだ。pathとfilenameのパラメータを変えれば、ドキュメントルート以下の既知ファイルならばどれでもダウンロードできる。
http://[サーバのIPアドレス]/wordpress/wp-content/plugins/wp-filemanager/incl/libfile.php?&path=../../&filename=wp-config.php&action=download
すると、ファイルダウンロードのダイアログが表示される。ブラウザによっては直接、ダウンロードが始まるかもしれない。
ダウンロードできたならば、このwp-configというファイルを開いてみよう。中にはデータベースのユーザー名とパスワードが書かれている。外部からデータベースへのアクセスを許可している環境なら、この情報とGUIのデータベース管理ツールなどを使うことで、データベースからユーザー名とパスワードハッシュを取り出したり、書き換えたり、ブログの文字列を書き換えたりすることができる。
先日話題となったレンタルサーバのWordPress書き換え事件では、このように脆弱性を突かれてデータベースのユーザー名とパスワードが奪われ、データベースが直接書き換えられたのではないかといわれている。
本稿の環境では、外部からデータベースにはアクセスできない(データベースの設定でWordPressユーザーに、すべてのホストからアクセスできる同じ特権を持つユーザーを作成すれば、アクセスできるようになるが)。
だが、レンタルサーバなどでは、外部からアクセスできるデータベースを1つだけ提供し、それを多数のアプリケーションで使い回すようになっている環境も多い。そうした環境ならば、この情報が分かっただけでもサイトが書き換えられたり、他のアプリケーションの情報も盗まれていたかもしれない。
Copyright © ITmedia, Inc. All Rights Reserved.