Quick Start
Strategies
Use--strategy to control how much reconnaissance Vigolium performs before dynamic testing.
Lite — Fast, Minimal Discovery
Runs only the audit phase against the provided targets. No crawling, no content discovery.Balanced — Default
Runs content discovery, browser spidering, known-issue-scan analysis, and audit.Deep — Maximum Recon
Adds external intelligence harvesting (Wayback Machine, CommonCrawl, etc.) on top of balanced.Phase-by-Phase Walkthrough
Input Formats
Vigolium accepts targets in multiple formats via-I / --input-mode:
| Format | Flag | Example |
|---|---|---|
| URL list (default) | -I urls | vigolium scan -T urls.txt |
| OpenAPI / Swagger | -I openapi | vigolium scan -i api-spec.yaml -I openapi |
| Postman Collection | -I postman | vigolium scan -i collection.json -I postman |
| Burp XML export | -I burpxml | vigolium scan -i burp-export.xml -I burpxml |
| Raw HTTP request | -I burpraw | vigolium scan -i request.txt -I burpraw |
| cURL commands | -I curl | vigolium scan -i curls.sh -I curl |
| HAR file | -I har | vigolium scan -i traffic.har -I har |
| Nuclei output | -I nuclei | vigolium scan -i nuclei.json -I nuclei |
External Harvesting
Queries external data sources for historical URLs and endpoints. Enabled by--strategy deep or --external-harvest.
vigolium-configs.yaml under external_harvester.sources.
Content Discovery
Brute-force directory and file discovery using the deparos engine. Enabled by--strategy balanced/deep or --discover.
Browser Spidering
Chromium-based crawling that handles SPAs, JavaScript rendering, and form interactions. Enabled by--strategy balanced/deep or --spider.
-b/--browsers— number of browser instances (default: 1)-E/--browser-engine—chromium,ungoogled, orfingerprint(default:chromium)--headless— headless mode (default: true)--no-cdp— disable CDP event listener detection--no-forms— disable automatic form filling--spider-max-time— max duration (default: 30m)
Known Issue Scan
Runs Nuclei templates and Kingfisher secret scanning against discovered hosts and response bodies. Enabled by--strategy balanced/deep or by the strategy.
By default, known-issue-scan enriches its target list with path prefixes discovered in previous phases (discovery, spidering). This increases coverage — Nuclei templates run against individual path prefixes (e.g., https://example.com/api/v1/) rather than just the host root. Disable this for faster but less granular scans:
Audit
The core scanning phase. Runs active and passive modules against all discovered HTTP records. Enabled in all strategies. Uses a feedback loop (up to 3 rounds): after each round, checks for newly discovered records and rescans if found. OAST (Out-of-band Application Security Testing) injects blind callback payloads when configured:Performance Tuning
CLI Speed Flags
| Flag | Default | Description |
|---|---|---|
-c / --concurrency | 50 | Number of concurrent scan workers |
--max-per-host | 2 | Max concurrent requests per host |
-r / --rate-limit | 100 | Max request submissions per second |
--max-host-error | 30 | Skip host after N consecutive errors |
--max-findings-per-module | 15 | Suppress findings after this many per module (0 = unlimited) |
--timeout | 15s | Per-request HTTP timeout |
--retries | 1 | Retry count for failed requests |
--scanning-max-duration | unset | Override global max scan duration |
--discover-max-time | 1h | Max duration for content discovery |
--spider-max-time | 30m | Max duration for spidering |
Scanning Pace (Config File)
Thescanning_pace section in vigolium-configs.yaml provides centralized speed control. Common values serve as a baseline inherited by all phases; per-phase subsections override specific values.
Output Formats
| Format | Flag | Description |
|---|---|---|
| Console | --format console (default) | Colored human-readable table output |
| JSONL | --format jsonl or --json / -j | One JSON object per finding per line |
| HTML | --format html -o report.html | Interactive ag-grid HTML report |
Lightweight Scan Commands
For quick, targeted scans of individual URLs or raw requests.scan-url — Single URL
scan-request — Raw HTTP Request
--discover, --spider, --external-harvest, --known-issue-scan) are used with these commands, they delegate to the full Runner pipeline (database required).
Module Selection
Filtering by Tag
Modules are tagged with classification labels (e.g.,spring, rails, django, xss, injection, light). Use --module-tag to run only modules matching specific tags:
-m and --module-tag are provided, the results are merged (union).
Custom Extensions
Load JavaScript or YAML extension modules alongside or instead of built-in modules. See Extension Scanning for full details.Heuristics
Pre-flight checks detect WAFs, redirects, and technology before scanning. Controlled via--heuristics-check:
--only is used.
OAST (Out-of-Band Testing)
OAST detects blind vulnerabilities where the application triggers an out-of-band callback (DNS/HTTP) instead of reflecting payloads in the response. Vigolium uses an interactsh server for callback tracking. OAST is enabled by default. The OAST probe module injects callback URLs into insertion points and monitors for interactions during and after the scan.vigolium-configs.yaml:
Mutation Strategy
The mutation strategy controls how Vigolium generates payloads for parameter fuzzing. Value-aware mutation analyzes the original parameter value, classifies it by semantic type, and generates type-appropriate mutations.Project Scoping
Use--project-id (with a UUID) or --project-name (with a name) to scope all scan data to a specific project for multi-tenant isolation:
