WordPressはメジャーになってしまって、プラグインはあまりセキュアではない傾向がある。WordPressのDBの接続情報等が入っているファイルがwp-config.phpというファイルで、これを盗もうとするリクエストが来るんですよね。
うちの場合、DBは同じホストでlocalhostしかlistenしてないから、別に盗られてもにわかに問題になることはないような気もするが。
最近来ているのをメモしておくと、、、
- wp-admin/admin-ajax.php パターン
- wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php
- wp-admin/admin-ajax.php?action=getfile&/../../wp-config.php
- wp-admin/admin-ajax.php?action=kbslider_show_image&img=../wp-config.php
- wp-admin/admin-ajax.php?action=revolution-slider_show_image&img=../wp-config.php
- wp-content/force-download.php パターン
- wp-content/force-download.php?file=../wp-config.php
- plugin パターン
- wp-content/plugins/db-backup/download.php?file=../../../wp-config.php
- wp-content/plugins/dukapress/lib/dp_image.php?src=../../../../wp-config.php
- wp-content/plugins/google-mp3-audio-player/direct_download.php?file=../../../wp-config.php
- wp-content/plugins/pica-photo-gallery/picadownload.php?imgname=../../../wp-config.php
- wp-content/plugins/plugin-newsletter/preview.php?data=../../../../wp-config.php
- wp-content/plugins/simple-download-button-shortcode/simple-download-button_dl.php?file=../../../../wp-config.php
- wp-content/plugins/tinymce-thumbnail-gallery/php/download-image.php?href=../../../../wp-config.php
- wp-content/plugins/wp-filemanager/incl/libfile.php?&path=../../&filename=wp-config.php&action=download
- wp-content/plugins/wp-filemanager/incl/libfile.php?path=../../&filename=wp-config.php&action=download
- themeのdownload.phpパターン
- wp-content/themes/<theme名>/download/download.php?file=../../../../wp-config.php
- theme名は…NativeChurch, antioch, authentic, epic, linenity, lote27, trinity, urbancity
- file=ではなくimgurl=だったりするものもある
- たぶんあるテーマでdownload/download.phpを用意したものがあってそれでファイルを読めてしまうセキュリティホールがあり、派生テーマが全部ダメだったんだと思います。
- themeのgetfile.phpパターン
- download.phpと似ている
- wp-content/themes/<theme名>/framework/utilities/download/getfile.php?file=../../../../../../wp-config.php
- theme名はparallelus-mingleとかparallelus-salutation
- refererがwp-content/themes/<theme名>/lib/scripts/dl-skin.php だったり、リクエストがdl-skin.phpでリファラがプラグインやthemeだったりすることもある
wp-admin以下にパスワード認証でもかけてしまおうかとも思ったが、いろいろググってみると、wp-admin/admin-ajax.phpにパスワードがかかると不具合を起こすことがあるみたいだったりもする。実際wp-admin以下で狙われるのはその、制限をかけられないらしいadmin-ajax.phpなので、あまり意味がないようにも思える。
wp-config.phpが最も狙われやすい&直接このファイルにアクセスが来ることはないのであるとすれば、URLのパターンで、wp-config.phpが入ってるのを全部denyにすればいいんじゃないかと思った。mod_rewriteか、あるいはLocationMatchでも引っかかるのかな?? POSTの場合は引っかかれないか。
Pingback: WAFがディレクトリトラバーサルの攻撃からWordPress、ブログを守るために出来ること – ビバ★りずむ