
「脆弱性」という言葉は聞いたことがあっても、具体的に何がどう危険なのかはわかりにくい。 この記事では、身近なたとえを使って、WordPressサイトで実際に悪用される脆弱性を解説します。
受付で「山田太郎」と名乗るべきところを「山田太郎; DELETE FROM users;」と書いて、裏のシステムを操作するようなもの
フォームやURLパラメータに悪意のあるSQL文を挿入し、データベースを不正に操作する攻撃。データの窃取、改ざん、削除が可能。
脆弱なプラグインの検索機能やフィルター機能を通じて、データベース内の全ユーザー情報(メールアドレス、パスワードハッシュ等)を抜き取られる。
対策:プリペアドステートメントの使用、入力値のバリデーション。WordPressではwpdb->prepare()を使う。
掲示板に「こんにちは」と書く代わりに、見た人のブラウザで勝手に動くプログラムを書き込むようなもの
Webページに悪意のあるJavaScriptコードを挿入し、そのページを閲覧したユーザーのブラウザで実行させる攻撃。Cookie窃取、セッションハイジャック、フィッシングに悪用される。
コメント欄やプロフィール欄にJavaScriptを挿入し、管理者がそのページを開いた瞬間に管理者のセッションCookieを攻撃者のサーバーに送信する。
対策:出力時のHTMLエスケープ、Content Security Policy(CSP)の設定。WordPressではesc_html()、esc_attr()等を使う。
銀行にログイン中の人に、知らないうちに「100万円を送金する」ボタンを押させるようなもの
ログイン中のユーザーに、意図しないリクエストを送信させる攻撃。ユーザーの権限で不正な操作(設定変更、データ削除等)を実行させる。
管理者が悪意のあるサイトを閲覧しただけで、WordPressの管理者アカウントが新規作成されたり、プラグインがインストールされたりする。
対策:CSRFトークン(ノンス)の実装。WordPressではwp_nonce_field()とcheck_admin_referer()を使う。
図書館で「この本を読んで」と頼むところを「隣の金庫の中身を読んで」と頼むようなもの
サーバー上の任意のファイルを読み込ませる(LFI)、または外部のファイルを読み込ませて実行させる(RFI)攻撃。設定ファイルの窃取やリモートコード実行が可能。
脆弱なテーマやプラグインのファイル読み込み処理を悪用し、wp-config.php(データベースのパスワードが記載)を読み取る。
対策:ファイルパスのホワイトリスト化、allow_url_includeの無効化。
リバースハックはWordPress専門のセキュリティチームです。 マルウェア駆除から再発防止まで、ワンストップでサポートします。 まずはお気軽にご相談ください。
※ 相談は無料です。お見積もりだけでもお気軽にどうぞ。
この記事をシェア