@waftester/cli 2.8.0 → 2.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +142 -15
- package/package.json +8 -7
package/README.md
CHANGED
|
@@ -3,13 +3,24 @@
|
|
|
3
3
|
[](https://npmjs.com/package/@waftester/cli)
|
|
4
4
|
[](https://npmjs.com/package/@waftester/cli)
|
|
5
5
|
[](https://github.com/waftester/waftester/blob/main/LICENSE)
|
|
6
|
+
[](https://npmjs.com/package/@waftester/cli)
|
|
6
7
|
|
|
7
|
-
The most comprehensive WAF testing CLI & MCP server. Detect, fingerprint, and bypass Web Application Firewalls with 2,800+ payloads and quantitative security metrics.
|
|
8
|
+
The most comprehensive WAF testing CLI & MCP server. Detect, fingerprint, and bypass Web Application Firewalls with **2,800+ payloads**, **70+ tamper scripts**, and quantitative security metrics (FPR, F1, MCC).
|
|
9
|
+
|
|
10
|
+
## Why WAFtester?
|
|
11
|
+
|
|
12
|
+
| Traditional Approach | WAFtester |
|
|
13
|
+
|---------------------|-----------|
|
|
14
|
+
| Chain 5+ tools (wafw00f, sqlmap, nuclei, scripts) | Single `auto` command — end-to-end |
|
|
15
|
+
| Manually select tampers per WAF vendor | Auto-selects from 70+ tampers based on detected WAF |
|
|
16
|
+
| Binary pass/fail results | Statistical metrics: FPR, Precision, F1 Score, MCC |
|
|
17
|
+
| HTTP only | Native GraphQL, gRPC, SOAP, WebSocket support |
|
|
18
|
+
| Manual result correlation | Unified JSON, SARIF, HTML, JUnit, CycloneDX output |
|
|
8
19
|
|
|
9
20
|
## Quick Start
|
|
10
21
|
|
|
11
22
|
```bash
|
|
12
|
-
# Run without installing
|
|
23
|
+
# Run without installing — downloads correct binary for your platform
|
|
13
24
|
npx -y @waftester/cli scan --target https://example.com
|
|
14
25
|
|
|
15
26
|
# Or install globally
|
|
@@ -17,7 +28,80 @@ npm install -g @waftester/cli
|
|
|
17
28
|
waf-tester scan --target https://example.com
|
|
18
29
|
```
|
|
19
30
|
|
|
20
|
-
##
|
|
31
|
+
## What You Can Do
|
|
32
|
+
|
|
33
|
+
### Full Automated Assessment
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
waf-tester auto -u https://target.com --smart
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Executes the complete lifecycle: endpoint discovery → WAF fingerprinting → optimal tamper selection → 2,800+ payload testing → quantitative report generation.
|
|
40
|
+
|
|
41
|
+
### WAF Detection & Fingerprinting
|
|
42
|
+
|
|
43
|
+
Identify WAF vendors with 197 vendor signatures:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
$ waf-tester vendor -u https://protected.example.com
|
|
47
|
+
|
|
48
|
+
Vendor Cloudflare
|
|
49
|
+
Confidence 98%
|
|
50
|
+
Evidence cf-ray header, __cfduid cookie, 1020 error page
|
|
51
|
+
|
|
52
|
+
Recommended tampers: charunicodeencode, space2morecomment, randomcase
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Covers Cloudflare, AWS WAF, Akamai, Imperva, Azure WAF, F5, ModSecurity, Fortinet, Barracuda, Sucuri, Radware, Citrix ADC, Palo Alto, Sophos, Wallarm, and more.
|
|
56
|
+
|
|
57
|
+
### Bypass Discovery
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
$ waf-tester bypass -u https://target.com --smart --tamper-auto
|
|
61
|
+
|
|
62
|
+
Payload Variants Tested 2,847
|
|
63
|
+
Blocked by WAF 2,728 (95.8%)
|
|
64
|
+
Bypassed WAF 119 (4.2%)
|
|
65
|
+
|
|
66
|
+
Top Bypass Chains:
|
|
67
|
+
1. charunicodeencode + space2morecomment (42 bypasses)
|
|
68
|
+
2. modsecurityversioned + randomcase (31 bypasses)
|
|
69
|
+
3. between + equaltolike (19 bypasses)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The mutation engine combines 49 mutator functions with base payloads for comprehensive encoding, evasion, and injection variation coverage.
|
|
73
|
+
|
|
74
|
+
### Enterprise Assessment with Metrics
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
$ waf-tester assess -u https://target.com -fp -o assessment.json
|
|
78
|
+
|
|
79
|
+
Detection Rate (TPR) 94.2%
|
|
80
|
+
False Positive Rate 0.3%
|
|
81
|
+
Precision 99.7%
|
|
82
|
+
Recall 94.2%
|
|
83
|
+
F1 Score 0.969
|
|
84
|
+
MCC 0.942
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Includes benign traffic corpus testing (Leipzig integration) for false positive measurement.
|
|
88
|
+
|
|
89
|
+
### Targeted Scanning
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# SQL injection and XSS
|
|
93
|
+
waf-tester scan -u https://target.com -types sqli,xss
|
|
94
|
+
|
|
95
|
+
# All 50+ attack categories
|
|
96
|
+
waf-tester scan -u https://target.com -types all
|
|
97
|
+
|
|
98
|
+
# Multi-protocol
|
|
99
|
+
waf-tester scan -u https://api.example.com/graphql -types graphql
|
|
100
|
+
waf-tester scan -u grpc://service:50051 -types grpc
|
|
101
|
+
waf-tester scan -u wss://api.example.com/socket -types websocket
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## MCP Server (AI Integration)
|
|
21
105
|
|
|
22
106
|
WAFtester includes a built-in [Model Context Protocol](https://modelcontextprotocol.io/) server for AI-powered security testing from Claude Desktop, VS Code, Cursor, and other MCP clients.
|
|
23
107
|
|
|
@@ -66,25 +150,68 @@ Add to Cursor MCP settings:
|
|
|
66
150
|
}
|
|
67
151
|
```
|
|
68
152
|
|
|
69
|
-
##
|
|
153
|
+
## Output Formats
|
|
70
154
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
155
|
+
| Format | Use Case | Flag |
|
|
156
|
+
|--------|----------|------|
|
|
157
|
+
| JSON | Automation, APIs | `-format json` |
|
|
158
|
+
| JSONL | Streaming, real-time | `-stream -json` |
|
|
159
|
+
| SARIF | GitHub/GitLab Security, VS Code | `-format sarif` |
|
|
160
|
+
| HTML | Stakeholder reports | `-format html` |
|
|
161
|
+
| JUnit | CI/CD test frameworks | `-format junit` |
|
|
162
|
+
| CycloneDX | SBOM vulnerability exchange | `-format cyclonedx` |
|
|
74
163
|
|
|
75
|
-
|
|
76
|
-
waf-tester vendor -u https://target.com
|
|
164
|
+
## CI/CD Integration
|
|
77
165
|
|
|
78
|
-
|
|
79
|
-
waf-tester run -u https://target.com -category xss
|
|
166
|
+
### GitHub Actions (Recommended)
|
|
80
167
|
|
|
81
|
-
|
|
82
|
-
waf-tester bypass -u https://target.com --smart --tamper-auto
|
|
168
|
+
Use the official [WAFtester Action](https://github.com/marketplace/actions/waftester-waf-security-testing) for zero-install CI/CD:
|
|
83
169
|
|
|
84
|
-
|
|
85
|
-
|
|
170
|
+
```yaml
|
|
171
|
+
- uses: waftester/waftester-action@v1
|
|
172
|
+
with:
|
|
173
|
+
target: ${{ env.TARGET_URL }}
|
|
174
|
+
scan-type: scan
|
|
175
|
+
format: sarif
|
|
86
176
|
```
|
|
87
177
|
|
|
178
|
+
### Alternative: npx in GitHub Actions
|
|
179
|
+
|
|
180
|
+
```yaml
|
|
181
|
+
- name: WAF Security Assessment
|
|
182
|
+
run: |
|
|
183
|
+
npx -y @waftester/cli scan -u ${{ env.TARGET_URL }} \
|
|
184
|
+
-format sarif -o results.sarif
|
|
185
|
+
|
|
186
|
+
- name: Upload SARIF
|
|
187
|
+
uses: github/codeql-action/upload-sarif@v3
|
|
188
|
+
with:
|
|
189
|
+
sarif_file: results.sarif
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Also integrates with SonarQube, GitLab SAST, DefectDojo, Elasticsearch, Slack, Teams, PagerDuty, Jira, Azure DevOps, and OpenTelemetry.
|
|
193
|
+
|
|
194
|
+
## All 33 Commands
|
|
195
|
+
|
|
196
|
+
| Command | Description |
|
|
197
|
+
|---------|-------------|
|
|
198
|
+
| `auto` | Full automated assessment (discovery → detection → testing → report) |
|
|
199
|
+
| `scan` | Targeted vulnerability scanning across 50+ categories |
|
|
200
|
+
| `vendor` | WAF vendor detection and fingerprinting (197 signatures) |
|
|
201
|
+
| `bypass` | Bypass discovery with tamper chain optimization |
|
|
202
|
+
| `assess` | Enterprise assessment with statistical metrics |
|
|
203
|
+
| `tampers` | List and rank tamper scripts by WAF vendor effectiveness |
|
|
204
|
+
| `run` | Execute specific payload categories against target |
|
|
205
|
+
| `fuzz` | Smart fuzzing with parameter-aware mutation |
|
|
206
|
+
| `crawl` | Spider target for endpoint and parameter discovery |
|
|
207
|
+
| `mcp` | Start MCP server for AI-powered testing |
|
|
208
|
+
| `nuclei` | Run Nuclei templates with WAF-aware configuration |
|
|
209
|
+
| `benchmark` | Performance benchmarking and rate limit detection |
|
|
210
|
+
| `compare` | Compare assessments across WAF configs or vendors |
|
|
211
|
+
| `report` | Generate reports from saved results |
|
|
212
|
+
| `version` | Show version and build information |
|
|
213
|
+
| ... | 18 more specialized commands |
|
|
214
|
+
|
|
88
215
|
## Platform Support
|
|
89
216
|
|
|
90
217
|
| Platform | Architecture | Package |
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@waftester/cli",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.2",
|
|
4
4
|
"description": "WAFtester — the most comprehensive WAF testing CLI & MCP server",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/waftester/waftester.git"
|
|
9
9
|
},
|
|
10
|
+
"author": "WAFtester <hello@waftester.com> (https://github.com/waftester)",
|
|
10
11
|
"homepage": "https://github.com/waftester/waftester",
|
|
11
12
|
"bugs": "https://github.com/waftester/waftester/issues",
|
|
12
13
|
"publishConfig": {
|
|
@@ -42,11 +43,11 @@
|
|
|
42
43
|
"node": ">=16"
|
|
43
44
|
},
|
|
44
45
|
"optionalDependencies": {
|
|
45
|
-
"@waftester/darwin-x64": "2.8.
|
|
46
|
-
"@waftester/darwin-arm64": "2.8.
|
|
47
|
-
"@waftester/linux-x64": "2.8.
|
|
48
|
-
"@waftester/linux-arm64": "2.8.
|
|
49
|
-
"@waftester/win32-x64": "2.8.
|
|
50
|
-
"@waftester/win32-arm64": "2.8.
|
|
46
|
+
"@waftester/darwin-x64": "2.8.2",
|
|
47
|
+
"@waftester/darwin-arm64": "2.8.2",
|
|
48
|
+
"@waftester/linux-x64": "2.8.2",
|
|
49
|
+
"@waftester/linux-arm64": "2.8.2",
|
|
50
|
+
"@waftester/win32-x64": "2.8.2",
|
|
51
|
+
"@waftester/win32-arm64": "2.8.2"
|
|
51
52
|
}
|
|
52
53
|
}
|