はじめに
ペネトレーションテストを行う際に使うWAFの有無及びWAFの種類を確認するツールである「wafw00f」について簡単に仕組みを調べてみた。
ツールの使い方
簡単なので開発者のページを見てください。
GitHub:EnableSecurity/wafw00f
Reconnaissance, Identification & Fingerprinting of Web Application Firewall using WAFW00F
WAF有無のチェック実行
root@kali:~# wafw00f https://www.strikewitches.net/
パケットの中身
基本的にURLに普通はWAFで引っかかるであろう文字列を付与し、リクエストを送っている。
その応答のヘッダ等を見ているようだ。

また、リクエストヘッダをいじってリクエストを送っているものもある。

ツールの仕組み(WAF有無判断部分)
githubに公開されているソースコードのpluginsディレクトリ配下に、それぞれのWAFに対応する判断ロジックが記述されている。