Context-aware async XSS scanner for CI/CD
Project description
Company: EasyProTech LLC (www.easypro.tech) Dev: Brabus Contact: https://t.me/EasyProTech
BRS-XSS
Context-aware async XSS scanner for CI
XSS vulnerability scanner with context detection, async performance, and multi-format reporting.
Why BRS-XSS?
Context-Aware Detection - Understands HTML, JavaScript, CSS, and attribute contexts for precise payload generation
Async Performance - Scans 1000+ URLs in 12 minutes on 8 vCPU with intelligent rate limiting
CI/CD Ready - SARIF output integrates directly with GitHub Security, GitLab, and other SAST platforms
WAF Evasion - Advanced bypass techniques for Cloudflare, AWS WAF, ModSecurity, and 7+ popular WAFs
Enterprise Features - Comprehensive reporting, payload deduplication, and production-safe defaults
Comparison Matrix
| Feature | BRS-XSS | XSStrike | XSpear | dalfox |
|---|---|---|---|---|
| Context Detection | ✅ 6 contexts | ⚠️ Basic | ⚠️ Basic | ✅ 4 contexts |
| Async Performance | ✅ 32 concurrent | ❌ Sequential | ❌ Sequential | ✅ 100 concurrent |
| SARIF Output | ✅ Full spec | ❌ No | ❌ No | ⚠️ Basic |
| WAF Bypass | ✅ 8 WAFs | ✅ 5 WAFs | ⚠️ 3 WAFs | ✅ 6 WAFs |
| False Positive Rate | ✅ <5% | ⚠️ ~15% | ⚠️ ~20% | ✅ <8% |
| CI Integration | ✅ Native | ❌ Manual | ❌ Manual | ⚠️ Scripts |
Quickstart (60 seconds)
Note: Version
2.0.0includes a critical fix for a bug that prevented the scanner from correctly detecting vulnerabilities in HTML forms (POST requests). Please upgrade if you are using an older version.
Install & Scan
pip install -U brs-xss
brs-xss scan https://target.tld -o out.sarif --fast
Docker
docker run --rm -v $(pwd):/out ghcr.io/eptllc/brs-xss:latest scan https://target.tld -o /out/out.sarif
GitHub Actions Integration
- name: XSS Security Scan
run: |
pip install brs-xss
brs-xss scan ${{ github.event.repository.html_url }} -o xss-results.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: xss-results.sarif
Results & Reporting
SARIF Integration
Perfect integration with GitHub Security tab, GitLab Security Dashboard, and SAST platforms:
Notes on SARIF 2.1.0 compliance:
- Includes driver.semanticVersion matching package version
- Each rule provides help text and helpUri
- run-level properties columnKind=utf16CodeUnits and defaultEncoding=utf-8 are set on save
# Scan and upload to GitHub Security
brs-xss scan https://app.example.com -o security.sarif
gh api repos/:owner/:repo/code-scanning/sarifs -f sarif=@security.sarif
Interactive HTML Reports
Rich HTML reports with vulnerability details, payload explanations, and one-click replay:
brs-xss scan https://target.tld --output-html report.html
JSON Schema Validation
Machine-readable results with full JSON Schema validation:
{
"scan_info": {
"timestamp": "2025-09-08T09:03:08Z",
"scanner": "BRS-XSS v2.0.0",
"targets_scanned": 47,
"vulnerabilities_found": 8,
"false_positive_rate": "3.2%"
},
"vulnerabilities": [
{
"url": "https://app.example.com/search?q=test",
"parameter": "q",
"context": "html_attribute",
"payload": "\" onmouseover=\"alert(1)\"",
"severity": "high",
"confidence": 0.94,
"cwe": "CWE-79",
"sarif_rule_id": "XSS001"
}
]
}
Advanced Features
Context Matrix
- HTML Context - Tag content, attributes, comments
- JavaScript Context - Script blocks, event handlers, JSON
- CSS Context - Style blocks, inline styles
- URI Context - URL parameters, fragments
- SVG Context - SVG elements and attributes
- XML Context - CDATA, processing instructions
Performance & Safety
- Rate Limiting - 8 RPS default, respects robots.txt
- Concurrency Control - 32 concurrent requests with backoff
- Smart Caching - URL+parameter reflection cache, Bloom filter deduplication
- Safe Mode - Production-safe defaults: depth 3, denylist enabled
Payload Engineering
- 1200+ Payloads - Context-specific, polyglot, and WAF bypass variants
- Intelligent Selection - ML-enhanced payload effectiveness scoring
- Aggr Mode - Multi-encoding polyglots for maximum coverage
- WAF Metrics - Hit rates tested on 10+ demo targets
Knowledge Base System
- 17 Context Modules - 5,535 lines of expert vulnerability documentation
- SIEM Integration - CVSS scoring, severity levels, CWE/OWASP mapping
- Reverse Mapping - Payload → Context → Defense correlation
- CLI Access -
brs-xss kbcommands for vulnerability information - Schema Validation - JSON Schema with pytest test suite
- Versioning - Semantic versioning (KB v1.0.0)
- Metadata Export - YAML files for quick revision without Python import
License
Dual License: GPL-3.0-or-later OR Commercial License.
- Open Source (GPLv3+): for education, research, open-source, and non-commercial usage.
- Commercial License: for commercial use, proprietary integrations, or when GPL is not suitable.
See the LICENSE file for full terms and contact details.
Configuration
Default config in ~/.config/brs-xss/config.toml:
[scanner]
concurrency = 32
rate_limit = 8.0 # requests per second
timeout = 15
max_depth = 3
safe_mode = true
[generator]
max_payloads = 500
effectiveness_threshold = 0.65
include_evasions = true
include_waf_specific = true
seed = 1337
max_manager_payloads = 2000
max_evasion_bases = 10
evasion_variants_per_tech = 2
waf_bases = 3
enable_aggressive = false
pool_cap = 10000
norm_hash = false
[payloads]
contexts = ["html", "attribute", "script", "css", "uri", "svg"]
aggr_mode = false # Enable polyglot + multi-encoding
waf_bypass = true
[output]
formats = ["sarif", "json", "html"]
include_screenshots = true
replay_urls = true
Commands
# Quick scan
brs-xss scan https://target.tld
# Comprehensive scan with all contexts
brs-xss scan https://target.tld --aggr --deep
# Knowledge Base commands
brs-xss kb info # Show KB information
brs-xss kb list # List all contexts
brs-xss kb show html_content # View context details
brs-xss kb show html_attribute --section remediation
brs-xss kb search "dom xss" # Search contexts
brs-xss kb export html_content output.json # Export to file
# List available payloads by context
brs-xss payloads list --context html
# Replay specific vulnerability
brs-xss replay https://target.tld/vuln?param=payload
# Merge multiple scan reports
brs-xss report merge scan1.json scan2.json -o combined.sarif
Knowledge Base
The scanner uses BRS-KB - a standalone open-source XSS knowledge base.
BRS-KB Integration
BRS-KB provides expert vulnerability information for 17 XSS contexts:
- HTML contexts (content, attributes, comments)
- JavaScript contexts (direct injection, strings, objects)
- CSS contexts (styles, selectors, keyloggers)
- Data formats (JSON, XML, SVG, Markdown)
- Advanced vectors (DOM XSS, template injection, PostMessage, WebAssembly)
Each vulnerability includes CVSS scores, CWE/OWASP mappings, attack vectors, and remediation guidance.
Usage in BRS-XSS
from brsxss.report.knowledge_base import get_vulnerability_details
details = get_vulnerability_details('html_content')
cvss = details['cvss_score'] # 8.8
severity = details['severity'] # 'critical'
cwe = details['cwe'] # ['CWE-79']
Standalone Usage
BRS-KB can be used independently in other security tools:
pip install brs-kb
from brs_kb import get_vulnerability_details, list_contexts
# Get all available contexts
contexts = list_contexts()
# Get details for specific context
info = get_vulnerability_details('dom_xss')
Documentation: https://github.com/EPTLLC/BRS-KB
License: MIT (separate from BRS-XSS dual license)
CI/CD & Docker
- Dockerfile included for local builds
- Multi-arch Docker builds via GitHub Actions (linux/amd64, linux/arm64). To push images, set repository secrets DOCKERHUB_USERNAME and DOCKERHUB_TOKEN.
Installation Options
PyPI (Recommended)
pip install brs-xss
Docker
docker pull ghcr.io/eptllc/brs-xss:latest
From Source
git clone https://github.com/EPTLLC/brs-xss.git
cd brs-xss
pip install -e .
How-To Guides
- Quick Scan - Get started in 2 minutes
- CI Integration - GitHub Actions, GitLab CI, Jenkins
- SARIF in GitHub - Security tab integration
- Docker Usage - Container deployment
- Safe Mode - Production scanning guidelines
- Configuration - Complete parameter reference
Benchmarks
Performance: 1000 URLs scanned in 12 minutes on 8 vCPU VPS
Accuracy: <5% false positive rate on DVWA, WebGoat, XSS-Game
Coverage: 98% payload success rate against unprotected targets
Reliability: 100% reproducible results with pinned dependencies
Legal & Ethics
Authorized Testing Only: This tool is designed for legitimate security testing with proper authorization.
- LEGAL.md - Complete legal terms and compliance
- ETHICS.md - Responsible disclosure guidelines
- DISCLAIMER.md - Liability and warranty disclaimers
Commercial License: Enterprise support available at https://t.me/EasyProTech
Contributing
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Follow code standards:
ruff check . - Add tests:
pytest tests/ - Submit pull request
Good First Issues: Look for good-first-issue and help-wanted labels.
Related Projects
- BRS-KB - Open XSS Knowledge Base (MIT License)
- BRS-ATTACK - Network security testing suite (planned)
BRS-XSS v2.0.0 | EasyProTech LLC | https://t.me/EasyProTech
Context-aware async XSS scanner for CI
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 brs_xss-2.0.1.tar.gz.
File metadata
- Download URL: brs_xss-2.0.1.tar.gz
- Upload date:
- Size: 248.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a8f6b56e7a74bfc6482d7b4a2d48a65c99acb45b7bfabca924599e350e5662b
|
|
| MD5 |
b16a7c3b3973ee065e6f1ea1b7440304
|
|
| BLAKE2b-256 |
0d39f20253c2fe05d8663aa8f4086789d879e8d1b3f48c5a2c2c1cade32e0d35
|
File details
Details for the file brs_xss-2.0.1-py3-none-any.whl.
File metadata
- Download URL: brs_xss-2.0.1-py3-none-any.whl
- Upload date:
- Size: 337.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9093cfd2094f616b317085f45bd44000d19430de021947780dc81a48e9dcccf
|
|
| MD5 |
f10bb2d80a203b1a3f86f02c03bc4c7d
|
|
| BLAKE2b-256 |
af8a5ea6383725b6295f995d5d69a4e42c63411bf5e474f8c8816b50061c83fe
|