wafw00f Documentation

WAFW00F allows one to identify and fingerprint Web Application Firewall (WAF) products protecting a website.

6,331 stars Python Python 1 file ยท ~925 tokens #fingerprint#waf#waffit#web-application-firewall
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy wafw00f on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name wafw00f --restart always enablesecurity/wafw00f:latest

File: README.md

[](https://github.com/enablesecurity/wafw00f)

WAFW00F

How does it work?

To do its magic, WAFW00F does the following:

  • Sends a normal HTTP request and analyses the response; this identifies a
    number of WAF solutions.
  • If that is not successful, it sends a number of (potentially malicious) HTTP
    requests and uses simple logic to deduce which WAF it is.
  • If that is also not successful, it analyses the responses previously
    returned and uses another simple algorithm to guess if a WAF or security
    solution is actively responding to our attacks.

For further details, check out the source code on our main repository.

What does it detect?

WAFW00F can detect a number of firewalls, a list of which is as below:

text
/* Detailed source-code truncated for AI context efficiency. */

How do I use it?

First, install the tools as described here.

For help you can make use of the --help option. The basic usage is to pass
an URL as an argument. Example:

text
$   wafw00f https://example.org

                   ______
                  /      \
                 (  Woof! )
                  \  ____/                      )
                  ,,                           ) (_
             .-. -    _______                 ( |__|
            ()``; |==|_______)                .)|__|
            / ('        /|\                  (  |__|
        (  /  )        / | \                  . |__|
         \(_)_))      /  |  \                   |__|

                    ~ WAFW00F : v2.4.2 ~
    The Web Application Firewall Fingerprinting Toolkit

[*] Checking https://example.org
[+] The site https://example.org is behind Edgecast (Verizon Digital Media) WAF.
[~] Number of requests: 2

How do I install it?

Run:

text
python3 -m pip install wafw00f

or

text
pip3 install wafw00f

Via Docker

It is also possible to run it within a docker container. Clone this repository first and build the Docker image using:

text
docker build . -t wafw00f

Now you can run:

text
docker run --rm -it wafw00f https://example.com

From source

NOTE: Be careful to not break your system packages while installing wafw00f. Use venv as and when required.

Clone the repository:

text
git clone https://github.com/enablesecurity/wafw00f.git

Then:

text
cd wafw00f/
python3 -m pip install .

Or, by using pipx directly:

text
pipx install git+https://github.com/EnableSecurity/wafw00f.git

Final Words

Questions? Pull up an issue on GitHub Issue Tracker or contact me.
Pull requests, ideas and issues are highly welcome.

Some useful links:

Presently being developed and maintained by:


File: docs/index.rst

.. wafw00f documentation master file, created by
sphinx-quickstart on Thu May 15 20:04:22 2014.
You can adapt this file completely to your liking, but it should at least
contain the root toctree directive.

Welcome to wafw00f's documentation!

Contents:

.. toctree::
:maxdepth: 2

Indices and tables

  • :ref:genindex
  • :ref:modindex
  • :ref:search