Overview
Vigolium’s native scan pipeline consists of multiple phases that run sequentially. You can run the full pipeline, isolate a single phase with--only, or skip specific phases with --skip. This guide walks through each phase and how to run them independently.
The Full Pipeline
When you run a standard scan, phases execute in this order:- External Harvest - gather endpoints from external sources (Wayback Machine, CT logs)
- Spidering - browser-based crawling to discover dynamic content
- SAST - static analysis of source code (requires
--source) - Discovery - content discovery via wordlists and fuzzing
- Known Issue Scan - template-based scanning with Nuclei/Kingfisher
- Audit - active and passive vulnerability scanning modules
Running a Single Phase
Usevigolium run <phase> or vigolium scan --only <phase> to execute one phase in isolation.
Discovery
Discovers new endpoints through wordlist-based fuzzing and content probing:Spidering
Crawls the target using a headless browser to discover pages, forms, and JavaScript-rendered content:spitolas also works:
External Harvest
Pulls endpoints from external intelligence sources (Wayback Machine, certificate transparency logs):Known Issue Scan
Runs template-based scanning (Nuclei templates) against ingested endpoints:Audit
Runs active and passive vulnerability scanning modules. This is the core scanning phase:SAST (Static Analysis)
Runs static analysis on the application source code. Requires--source:
Extension
Runs only custom JavaScript or YAML extensions:Skipping Phases
Use--skip to disable specific phases while keeping the rest of the pipeline:
--only and --skip cannot be used together.
Phase Aliases
Several phases accept shorthand aliases:| Alias | Phase |
|---|---|
deparos, discover | discovery |
spitolas | spidering |
ext | extension |
dynamic-assessment | audit |
Chaining Phases Manually
You can chain independent phase runs to build a custom pipeline. Each phase stores its results in the database, so subsequent phases pick up where the previous one left off:Tuning Per-Phase Performance
Override concurrency and rate limits for individual phases using the config file (vigolium-configs.yaml):
-c, --rate-limit) always take precedence over config values.
Controlling Scope
Scope filtering applies across all phases. Use--scope-origin to control host matching:
Adding Authentication
All phases respect authentication headers. Pass them with-H:
