WPSeku で WordPress の脆弱性をスキャンする方法
脆弱性スキャンツール「WPSeku」で、WordPress の脆弱性をスキャンできます。
WordPress の URL を指定するだけで、ブラックボックスのテストが実行されます。
外から取得できる WP 情報を可視化したり、脆弱性情報の確認が行えます。
ツールの詳細や利用方法、スキャン結果の例についてまとめました。
WPSeku とは
オープンソースの WordPress 脆弱性スキャンツールです。
Python で書かれており、簡単に WordPress のセキュリティチェックが行えます。
スキャンには大きく2種類あります。
- 外部の WordPress へリクエストを送信して検証
- サーバ内でファイルをスキャン
同様のツールとしては、WPScan などが存在します。
WPSeku で取得できる脆弱性情報
外部から WordPress を検証する場合、環境にもよりますが以下の情報が取得できます。
- Web サーバ
- WordPress が格納された物理パス
- アクセス可能なバックアップファイル
- 使用中のテーマ
- 使用中のプラグイン
- ログインユーザ一覧
WordPress の実ファイルにアクセスできる場合、PHP の脆弱性をスキャン可能です。
以下のディレクトリがスキャン対象となります。
- WordPress 本体
- テーマ
- プラグイン
パスワード辞書を用いてブルートフォースを行う機能もありますが、悪用は厳禁です。
WPSeku の動作に必要な環境
Python 3 が動く環境であれば OK です。
インストール時に pip を使用するため、pip も準備しておきます。
- Python 3
- pip
WPSeku のセットアップ
Python が動作する環境で git clone します。
pip で依存モジュールをセットアップ。
引数なしで実行すると、オプションを確認できます。
WPSeku の使い方 (WordPress サイトをスキャン)
--url
オプションで WordPress サイトを指定します。--verbose
を付加すると詳細表示となります。
スキャン結果の一例です。 一部省略していますが、WP バージョン・物理パス・テーマ・プラグイン・ユーザ情報などが一部取得できています。
検出したプラグインで既知となっている脆弱性情報も出力されます。
使用中のバージョンは把握できないため、参考程度の情報です。
WPSeku の使い方 (サーバローカル)
WordPress と同じサーバ内にインストールした場合の例です。
物理パスを --scan
オプションで指定すると、PHP ファイルをスキャンできます。
XSS や CSRF など、脆弱性に繋がる恐れのあるコードが指摘されています。
ドキュメントルートを指定すると大量に出力されてしまいます。
独自カスタマイズした PHP や、特定プラグインのみをスキャンする方が現実的です。
WPScan Vulnerability Database の脆弱性情報
WPSeku では、WPScan Vulnerability Database のデータベースを使用しています。
https://wpvulndb.com/
WordPress の脆弱性に関する公開データベースで、プラグインやテーマに関する情報も含まれています。また、脆弱性の発見した場合は Web から情報提供も可能です。
参考記事
まとめ
- WPSeku で WordPress のセキュリティチェックが行なえます
- 外部から見えている WordPress のメタ情報を調査できます
- PHP ファイルのスキャン機能も搭載しています
WordPress を構築した際や、既存サイトのセキュリティを確認する際に便利です。
対策をしていないと外から見える情報も多いため、注意が必要そうです。
ディスカッション
コメント一覧
まだ、コメントがありません