{"id":24819,"library":"wafw00f","title":"wafw00f - Web Application Firewall Fingerprinting Toolkit","description":"wafw00f (v2.4.2) identifies and fingerprints Web Application Firewall (WAF) products protecting a website. It sends a set of HTTP requests and analyzes responses to detect over 200 WAFs. The library is actively maintained with regular releases, typically several per year.","status":"active","version":"2.4.2","language":"python","source_language":"en","source_url":"https://github.com/enablesecurity/wafw00f","tags":["waf","fingerprinting","security","web-application-firewall","network-security"],"install":[{"cmd":"pip install wafw00f","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"HTTP requests library used internally","package":"requests","optional":false},{"reason":"Used for low-level HTTP handling","package":"urllib3","optional":false}],"imports":[{"note":"","wrong":null,"symbol":"wafw00f","correct":"import wafw00f"},{"note":"","wrong":null,"symbol":"WafW00F","correct":"from wafw00f import WafW00F"}],"quickstart":{"code":"from wafw00f import WafW00F\n\nwaf = WafW00F('https://example.com')\nresult = waf.identwaf()\nif result:\n    print(f\"WAF detected: {result.waf})\")\nelse:\n    print(\"No WAF detected or could not be identified.\")","lang":"python","description":"Simple example to detect WAF on a target URL."},"warnings":[{"fix":"Use pip install wafw00f instead of any manual setup.py invocations.","message":"The use of setup.py is deprecated; installation via pip works without it.","severity":"deprecated","affected_versions":">=2.4.2"},{"fix":"Use waf.identwaf() correctly.","message":"The main function is named identwaf (not identify_waf). The W in WafW00F is uppercase.","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade to >=2.4.1 where timeout enforcement is fixed.","message":"The WafW00F constructor can hang indefinitely on slow-streaming servers if timeout is not set explicitly.","severity":"gotcha","affected_versions":"<2.4.1"},{"fix":"Use Python 3.10 or newer.","message":"Python 2 support removed; Python >=3.10 required.","severity":"breaking","affected_versions":">=2.3.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'pip install wafw00f' in your active environment.","cause":"The library is not installed or installed in a different environment.","error":"ModuleNotFoundError: No module named 'wafw00f'"},{"fix":"Use 'from wafw00f import WafW00F' and then instantiate with 'WafW00F(url)'.","cause":"Attempting to use a wrong import or referring to the class incorrectly.","error":"AttributeError: module 'wafw00f' has no attribute 'WafW00F'"},{"fix":"Upgrade to wafw00f >=2.4.1 and/or pass a timeout parameter: WafW00F(url, timeout=10).","cause":"Target server is slow and the default timeout may not be respected in older versions.","error":"TimeoutError: The read operation timed out"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}