ハッカー御用達のツール「Wappalyzer」とは、サイトのバージョンの非表示設定も解説
※この記事は 2017年12月9日に公開されたものを、最新の情報に更新(最終更新日:2026年09月01日)しています。
生成AIを利用した脆弱性の探索により、Webアプリケーションを構成する様々なソフトウェアの脆弱性が発見されるペースが上がってきています。
脆弱性が知られているバージョンのソフトウェアを使用していることは、悪意のあるハッカーに攻撃をしてくれというメッセージを発していることになってしまいます。
それでは、そもそもハッカーはどうやってWebアプリケーションを構成するソフトウェアのバージョンを確認しているのでしょうか?
本記事では、Webアプリケーションを調査するハッカー御用達のツール「Wappalyzer」について紹介します。
Wappalyzerとは?
WappalyzerはWebアプリケーションに使用されているミドルウェアやフレームワークの種類やバージョン情報を推測するアプリケーションです。
Wappalyzerのホームページを見るに、セキュリティ診断だけに限らず、自組織で使用しているソフトウェアの管理やセールスのためにも使用することを想定しているようです。
実際にWappalyzerを使うときには、Google ChromeやFirefoxの拡張機能として提供されているものを利用するのが一番便利だと思います。
どちらも配布サイトにアクセスして、ChromeやFirefoxに追加というボタンを押すだけで、各ブラウザ上で利用できるようになります。
- Google Chromeの拡張機能
https://chromewebstore.google.com/detail/wappalyzer-technology-pro/gppongmhjkpfnbhagpmjfkannfbllamg - Firefoxのアドオン
https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/
それでは、実際に弊社のWebサイトをwappalyzerで解析してみましょう。
使い方は非常に簡単で、解析したいサイトにアクセスし、ブラウザの右上に表示されるWappalyzerのアイコンを押すだけです。
弊社ホームページをWappalyzerを使って解析してみると、WordPressやjQueryを使用していることが確認できました。
とくに、jQueryについては、そのバージョンも判明しています。


Wappalyzerの活用方法
Wappalyzerの使用方法がわかったところで、ハッカーがWappalyzerをどのように活用しているかをみていきましょう。
以下では、今回のブログのために用意した次のサイトをWappalyzerで解析してみます。

さっそく、Wappalyzerの解析結果を見て見ましょう。今回は判明したテクノロジーは少ないですが、ミドルウェアとしてnginxが使用されていることが確認できます。また、使用しているnginxのバージョンも判明しています。

このバージョン1.30.0について調べてみると、nginxの公式ページでいくつかの脆弱性が確認されているバージョンであることが判明しました。
今回は赤い矢印で強調した脆弱性CVE-2026-42945に注目してみましょう。

NISTが管理するNVD(National Vulnerability Database)を確認すると、この脆弱性はCVSSの基本評価基準の値がCritical(緊急)の9.2と評価されています。このスコアは脆弱性の管理元であるF5社(CNA)が付与したものです。
CVSSについてはこちらの記事を参照していただければと思いますが、Criticalという評価は緊急で対策が必要な、危険な脆弱性であるということを意味しています。

しかも、この脆弱性には一般公開された概念実証コード(PoC)が存在していることもわかりました。
nginxは世界中で広く利用されているWebサーバーソフトウェアのひとつであるためCVE-2026-42945は大きな注目を集め、研究や検証を目的としたPoCが複数公開されている状況です。
今回は、公開されているPoCのうちの一つを試してみようと思います。
なお、今回使用したPoCは、自身の管理下にある試験環境でのみ使用しています。
他人が管理するサーバーに対して無断で攻撃コードを実行する行為は、違法行為に該当する場合があります。絶対に行わないでください。

この脆弱性はヒープオーバーフローと呼ばれる種類の脆弱性であるため、事前にサーバーのOSなどにも依存するメモリアドレスの情報を用意しておく必要があります。
今回はそれらの情報を何らかの方法で入手していたと仮定しましょう。
今から、以下のPoCのコードを実行し、存在していなかったファイルにOSコマンドidの出力結果を書き込みます。

はじめに、現在のサーバー上には/page/hoge.htmlというファイルが存在しないことを確認します。
このサーバーでは、/tmpディレクトリ配下にあるファイル〇〇を/page/〇〇というパスで表示するように設定してあります。

次にPoCを実行します。
再度、URLhttp://example.com/page/hoge.htmlにアクセスすると、先ほどまで表示されていなかったファイルが存在しています。その内容から、先ほどのPoCによる攻撃が成功し、OSコマンドidの出力が書き込まれていることが確認できます。

このように、Wappalyzerで取得したバージョン情報を基に公開されている攻撃コードを適用することで、サーバー上に任意のファイルを生成できる状態であることがわかりました。
今回はファイルの書き込みまでを行いましたが、任意のOSコマンドが実行可能な状態であったため、サーバー乗っ取りなどのより深刻な被害につながる可能性もあります。
バージョン情報の隠し方
このように、サーバーで使用しているソフトウェアのバージョン情報が露見していると、それに対応した脆弱性のPoCを利用され悪意のあるハッカーの攻撃を成功させる手助けとなってしまいます。
そのため、使用しているミドルウェアの種類やバージョン情報を隠す対策をとることが重要になります。
なお、オープンソース版のnginxにはデフォルトではnginxを使用していることを隠す機能は搭載されていませんが、バージョン情報を隠す機能は用意されています。
nginxを使用していること自体を隠したい場合には、CDNやリバースプロキシ、WAFなどの通信経路上にあるサービスやネットワーク機器などによる対応が必要になります。
以下に、nginxの種類ごとに、nginxのバージョン情報を隠すための設定を記載します。
- nginx(オープンソース版)の設定例
nginxの設定ファイル(nginx.confなど)に次を設定します。詳細については後述の【参考情報】の「Module ngx_http_core_module」をご参照ください。
server_tokens off;
- nginx(NGINX Plus)の設定例
nginxの設定ファイル(nginx.confなど)に次を設定します。
詳細については後述の【参考情報】の「Module ngx_http_core_module」をご参照ください。
server_tokens "";
- nginxのモジュール(Headers More)の設定例
nginxの設定ファイル(nginx.confなど)に次を設定します。
詳細については後述の【参考情報】の「GitHub – openresty/headers-more-nginx-module」をご参照ください。
more_clear_headers "Server";
【参考情報】
Module ngx_http_core_module
https://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens
GitHub – openresty/headers-more-nginx-module
https://github.com/openresty/headers-more-nginx-module#more_clear_headers
終わりに
本記事ではWappalyzerの使用方法について解説しました。
Wappalyzerは自社のWebアプリケーションが使用しているソフトウェアを解析し、バージョン情報を隠す設定が期待通り動作しているかを確認するためにも利用できます。
jQueryなど、バージョン情報を隠すことが困難なものも存在しますが、特にミドルウェアのバージョンは露見させないようにすることが推奨されています。
今一度、自社のWebアプリケーションを検査してみてはいかがでしょうか。