Get started with Fray in 5 minutes!
pip install fraygit clone https://github.com/dalisecurity/fray.git
cd fray- Python 3.8+
- No additional dependencies required (uses standard library only!)
fray detect https://example.com# Test XSS payloads
fray test https://example.com -c xss --max 10
# Test SQL injection
fray test https://example.com -c sqli --max 10
# Test SSRF
fray test https://example.com -c ssrf --max 10fray payloadspython3 waf_tester.py -i
python3 waf_tester.py -t https://example.com -p payloads/xss/basic.json
python3 waf_tester.py -t https://example.com -p payloads/xss/basic.json --max 10[1/10] BLOCKED | Status: 403 | basic script tag
[2/10] BLOCKED | Status: 403 | img onerror
[3/10] PASSED | Status: 200 | benign input
- BLOCKED (Red): WAF detected and blocked the payload
- PASSED (Green): Payload was not blocked
- Status: HTTP response code (403 = blocked, 200 = passed)
After testing, a JSON report is generated:
{
"target": "https://example.com",
"timestamp": "2026-02-28T15:30:00",
"summary": {
"total": 100,
"blocked": 98,
"passed": 2,
"block_rate": "98.00%"
},
"results": [...]
}fray detect https://your-site.comfray test https://your-site.com -c xss --max 10# Test XSS
fray test https://your-site.com -c xss -o xss_results.json
# Test SQLi
fray test https://your-site.com -c sqli -o sqli_results.json
# Test SSRF
fray test https://your-site.com -c ssrf -o ssrf_results.jsonfray test https://your-site.com --max 20fray test --helpOptions:
-c, --category: Payload category (e.g. xss, sqli, ssrf)-p, --payload-file: Specific payload file to use-m, --max: Maximum number of payloads to test-d, --delay: Delay between requests (default: 0.5s)-t, --timeout: Request timeout (default: 8s)-o, --output: Output results JSON file
ONLY test systems you own or have explicit permission to test!
Unauthorized testing is:
- ✗ Illegal
- ✗ Unethical
- ✗ May result in criminal charges
- Get written permission before testing
- Follow bug bounty program rules
- Respect rate limits
- Don't cause harm or disruption
# Increase timeout
fray test https://example.com -c xss --timeout 15# Increase delay between requests
fray test https://example.com -c xss --delay 2The tool automatically ignores SSL certificate validation for testing purposes.
Available payload files:
payloads/xss/basic.json- 412 basic XSS payloadspayloads/xss/svg_based.json- 175 SVG-based XSSpayloads/xss/encoded.json- 12 encoded XSSpayloads/xss/obfuscated.json- 3 obfuscated XSSpayloads/xss/mutation.json- 4 mutation XSSpayloads/xss/dom_based.json- 24 DOM-based XSSpayloads/xss/polyglot.json- 1 polyglot XSS
payloads/sqli/general.json- 13 SQL injectionpayloads/ssrf/general.json- 7 SSRF payloadspayloads/xxe/general.json- 3 XXE payloadspayloads/ssti/general.json- 8 SSTI payloads
Coming soon! Check the repository for updates.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- PyPI: pypi.org/project/fray
- Documentation: See
/docsfolder
- ✅ Run your first test in interactive mode
- 📖 Read the full documentation
- 🔬 Explore the methodology
- 🤝 Contribute your own payloads
Happy (ethical) testing! 🎯