Open-source WAF Security Testing Platform — 7,200+ attack payloads, 98 WAF/CDN fingerprints, AI-powered bypass engine, recon pipeline, beautiful CLI output
Project description
Fray
Vibe security — just point and scan.
One command. Full pipeline. Zero config.
pip install fray && fray go target.com
Docs · Discussions · dalisec.io
🌐 English | 日本語
FOR AUTHORIZED SECURITY TESTING ONLY — Only test systems you own or have explicit written permission to test.
Before Fray vs. With Fray
| Traditional | With Fray |
|---|---|
| Install 5+ tools (nmap, wafw00f, sqlmap, nikto, nuclei) | pip install fray |
| Learn each tool's flags and config formats | fray go target.com |
| Manually correlate findings across tools | Automatic: recon → test → report |
| Write scripts to chain tools together | 42 checks · 12 deep scan modules · 7,800+ payloads |
| Security expertise required | Built for anyone who ships web apps |
What's New — v3.5.6
fray analyze— per-pattern WAF bypass table. Confirms which payload patterns are blocked, then finds what gets through — with injection mechanics explaining why each bypass works- 42 recon checks — CVE probes for Next.js, Log4Shell, Spring4Shell, WordPress, Drupal fire automatically based on detected tech stack. No manual configuration
- 18 vendor feeds — Unit 42, F5 Labs, Cloudflare, Imperva, PortSwigger, MSRC Patch Tuesday + 12 more.
fray feed --auto-addpulls, validates PoC accuracy, and stages payloads fray vendor-intel— latest CVEs and posts from all 18 feeds in one terminal view- Wappalyzer — 3,920 tech patterns from npm. Detects Shopify, EC-CUBE, Vercel, Datadog, Auth0, Kong, 4,200+ technologies from response headers, cookies, and scripts
- Report — security grade A–F with specific improvement steps, RDAP domain age, origin cloud provider (GCP/AWS/Azure), VPN CVEs in Known Vulnerabilities
Core Commands
fray go <url> # ★ Full pipeline: recon → test → report (start here)
fray recon <url> # 42-check reconnaissance — WAF, TLS, CVEs, secrets, subdomains
fray test <url> --smart # Smart payload selection from recon findings
fray analyze <url> # Per-pattern WAF bypass analysis with bypass table
fray detect <url> # WAF/CDN fingerprint (98 vendors)
fray harden <url> # OWASP hardening audit (A–F grade)
fray vendor-intel # Latest CVEs from 18 security vendor feeds
fray feed --auto-add # Pull CVEs → validate PoC → update payload DB
fray smoke --local # Test detection accuracy against localhost Docker lab
fray dashboard # Web UI — timeline, diff, live reload
fray mcp # MCP server for Claude / ChatGPT / Cursor
fray <url> is a shortcut for fray go <url>.
Who It's For
- Developers — run
fray gobefore launch. Done. - Bug bounty hunters — 7,800+ payloads, WAF bypass intelligence, adaptive cache learns across scans.
- Pentesters — 12 deep scan modules, stealth mode, auth support, per-pattern bypass analysis.
- DevSecOps — GitHub Action, SARIF output,
--jsonfor pipelines. - Security teams — MCP server for AI agents, VS Code extension, 18 live threat intel feeds.
Payload Coverage
7,800+ payloads across 43 categories:
| Category | Count | Category | Count |
|---|---|---|---|
| XSS | 1,329 | AI/LLM Prompt Injection | 410 |
| Web Shells | 994 | Path Traversal | 293 |
| WordPress | 964 | SQL Injection | 258 |
| LLM Testing | 740 | Command Injection | 233 |
| Other / Generic | 368 | SSTI | 220 |
| CSP Bypass | 177 | XXE | 178 |
| Modern Bypasses | 137 | API Security | 130 |
| SSRF Cloud Metadata | 123 | Prototype Pollution | 110 |
| CRLF Injection | 94 | Open Redirect | 91 |
| LDAP Injection | 90 | XPath Injection | 89 |
| JWT Attack | 32 | Supply Chain | 46 |
| Auth Bypass | 20 | GraphQL Attacks | 24 |
| Cache Poisoning | 20 | Deserialization | 16 |
| Mass Assignment | 25 | Race Condition | 16 |
| RAG Security | 16 | HTTP Smuggling | 17 |
| Host Header Injection | 15 | CORS | 15 |
MCP — AI Agent Integration
18 tools via MCP for Claude, ChatGPT, Cursor, and any MCP client.
pip install 'fray[mcp]'
{ "mcpServers": { "fray": { "command": "python", "args": ["-m", "fray.mcp_server"] } } }
Ask "What XSS payloads bypass Cloudflare?" — suggest_payloads_for_waf, generate_bypass_strategy, analyze_response, hardening_check, and 14 more tools run directly.
Claude Code guide → · ChatGPT guide →
CI/CD — GitHub Action
# .github/workflows/waf.yml
- uses: dalisecurity/fray@v1
with:
target: https://staging.example.com
categories: xss,sqli
Exits non-zero on bypass findings. Integrates with GitHub Security tab via SARIF. CI/CD guide →
Auth & Stealth
fray test https://target.com --cookie "session=abc123"
fray test https://target.com --bearer eyJhbG...
fray test https://target.com --stealth -d 0.5 # randomized UA + jitter
fray recon https://target.com --scope scope.txt # in-scope enforcement
Community
- Discussions — questions, ideas, show what you built
- Issues — bugs and feature requests
- Contributing — PRs welcome. For AI coding agents, see AGENTS.md
- VS Code Extension —
MIT License · Only test systems you own or have explicit authorization to test · Security issues: soc@dalisec.io
dalisec.io · Built by hunters. For defenders.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fray-3.5.220.tar.gz.
File metadata
- Download URL: fray-3.5.220.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f0a11f6208d46ca27ac513a5ebbc56935140c36b3a7413e0207607f012c3dbd
|
|
| MD5 |
877eadea17ed0169aacd9c5026c9fe12
|
|
| BLAKE2b-256 |
e7daaccbd6de30b49be29b555b4feecbbd91821198bb35760a9f5c72f84ee714
|
Provenance
The following attestation bundles were made for fray-3.5.220.tar.gz:
Publisher:
publish.yml on dalisecurity/Fray
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fray-3.5.220.tar.gz -
Subject digest:
7f0a11f6208d46ca27ac513a5ebbc56935140c36b3a7413e0207607f012c3dbd - Sigstore transparency entry: 1124558699
- Sigstore integration time:
-
Permalink:
dalisecurity/Fray@7d9b0f8256860cf5fa39a6fe202060f86bef24ca -
Branch / Tag:
refs/tags/v3.5.220 - Owner: https://github.com/dalisecurity
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7d9b0f8256860cf5fa39a6fe202060f86bef24ca -
Trigger Event:
release
-
Statement type:
File details
Details for the file fray-3.5.220-py3-none-any.whl.
File metadata
- Download URL: fray-3.5.220-py3-none-any.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53fe01393ea0db4e11bfc5bba82bcf24e8763e91eeb0c367e6885a79c632ddf3
|
|
| MD5 |
057e1e04f9ded0111d06a4e13f11d8cb
|
|
| BLAKE2b-256 |
cfc73fd521296f004c3187c46f120b84d63d85b078f237ff980e9e42672fc35a
|
Provenance
The following attestation bundles were made for fray-3.5.220-py3-none-any.whl:
Publisher:
publish.yml on dalisecurity/Fray
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fray-3.5.220-py3-none-any.whl -
Subject digest:
53fe01393ea0db4e11bfc5bba82bcf24e8763e91eeb0c367e6885a79c632ddf3 - Sigstore transparency entry: 1124558988
- Sigstore integration time:
-
Permalink:
dalisecurity/Fray@7d9b0f8256860cf5fa39a6fe202060f86bef24ca -
Branch / Tag:
refs/tags/v3.5.220 - Owner: https://github.com/dalisecurity
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7d9b0f8256860cf5fa39a6fe202060f86bef24ca -
Trigger Event:
release
-
Statement type: