
This project helps you check how well your Web Application Firewall (WAF) protects your product against common web attacks. It can be run as a Cloudflare Worker (with a built-in interactive Web UI) or as a standalone Node.js CLI tool.
SQL Injection, XSS, Path Traversal, Command Injection, SSRF, NoSQL Injection, Local File Inclusion, LDAP Injection, HTTP Request Smuggling, Open Redirect, Sensitive Files, CRLF Injection, UTF8/Unicode Bypass, XXE, SSTI, HTTP Parameter Pollution, Web Cache Poisoning, IP Bypass, User-Agent.
X-HTTP-Method-Override, etc.).The project is structured as an NPM Workspaces monorepo:
packages/core/: The core security testing library, payloads definition, WAF fingerprinting signatures, and obfuscation encoders.packages/worker/: Cloudflare Worker package serving the static HTML/JS Web UI and JSON API endpoints.packages/cli/: Node.js command-line interface tool for executing audits directly from your terminal.From the root directory, install dependencies and build all workspaces:
npm install
npm run build
To run the Worker dev server locally (requires Wrangler):
npm run dev:worker
The Web UI will be accessible at http://localhost:8787 (or another port if 8787 is occupied).
To deploy the Worker to Cloudflare:
npx wrangler deploy --workspace=packages/worker
To run security testing audits directly from your command line:
# Print general CLI help and usage
node packages/cli/dist/index.js --help
# Print check command help (lists all methods, categories, and WAF vendors)
node packages/cli/dist/index.js check --help
Detect the WAF vendor behind a target URL:
node packages/cli/dist/index.js detect <url>
Run an audit against a target URL:
# Default check (GET method, all payload categories)
node packages/cli/dist/index.js check https://example.com
# Custom check with specific methods, categories, and WAF evasion enabled
node packages/cli/dist/index.js check https://example.com -m GET,POST -c "SQL Injection,XSS" --auto-detect-waf --encoding-variations
Run batch audits for a list of URLs defined in a file:
node packages/cli/dist/index.js batch targets.txt --concurrency 3
You can run the CLI using Docker, either by pulling the pre-built image from GitHub Container Registry or by building it locally.
The pre-built Docker image is available on GitHub Container Registry at ghcr.io/sech0us3/waf-checker-cli.
docker pull ghcr.io/sech0us3/waf-checker-cli:latest
docker run --rm ghcr.io/sech0us3/waf-checker-cli:latest --help
docker run --rm -it ghcr.io/sech0us3/waf-checker-cli:latest check https://example.com
docker run --rm -it -v "$(pwd):/data" ghcr.io/sech0us3/waf-checker-cli:latest batch /data/targets.txt --concurrency 3
docker build -t waf-checker-cli .
docker run --rm waf-checker-cli --help
docker run --rm -it waf-checker-cli check https://example.com
docker run --rm -it -v "$(pwd):/data" waf-checker-cli batch /data/targets.txt --concurrency 3
To run the workspace-wide test suite (utilizing Vitest):
npm test
Read my blog at yoursec.substack.com