
vigolium v0.3.10
Vigolium - 高保真漏洞扫描器,融合智能体AI与原生速度、模块化和精准性
Vigolium - 高保真漏洞扫描器,融合智能体 AI 与原生速度、模块化和精准性
Vigolium 提供两种互补的扫描模式:
-
原生扫描 (
vigolium scan):快速、强大且灵活。 确定性的多阶段扫描,包含 317 个模块,涵盖内容发现、浏览器/SPA 爬虫、主动/被动审计,覆盖注入、访问控制、文件/路径、API/协议、框架特定、云/基础设施以及带外(OAST)漏洞类别。 -
智能体扫描 (
vigolium agent):对你的代码库进行彻底审计。 由 AI 驱动的扫描,可自主规划攻击、选择模块、生成自定义扩展并对结果进行分类,将深度源代码审计与自动化和定向漏洞扫描相结合。
安装
快速安装(推荐)```bash
curl -fsSL https://vigolium.com/install.sh | bash
### [npm](https://www.npmjs.com/package/@vigolium/vigolium)```bash
npm install -g @vigolium/vigolium
其他方法,如 Docker 或从源码构建
Docker```bash
docker pull j3ssie/vigolium:latest docker run --rm j3ssie/vigolium:latest scan -h
### 从源代码构建```bash
git clone https://github.com/vigolium/vigolium.git
cd vigolium
make build # build and install to $GOPATH/bin
需要 Go 1.26+ 和 bun 1.3.11+。有关先决条件和构建详情,请参阅 HACKING.md。
| UI 仪表盘 | 流量仪表盘 |
|---|---|
![]() | ![]() |
| 静态报告 | 静态报告 |
|---|---|
![]() | ![]() |
| 原生扫描 | 智能体扫描 |
|---|---|
![]() | ![]() |
主要特性
原生扫描
- 323 个扫描器模块:207 个主动式(模糊测试)+ 116 个被动式(模式匹配),覆盖 OWASP Top 10 及更广泛的范围
- 带外测试(OAST):通过 interactsh 回调实现盲 XSS/SSRF/命令注入,并自动进行载荷关联
- 值感知变异:按语义类型(整数、UUID、JWT、电子邮件)对参数进行分类,并依意图进行变异
- 多阶段流水线:外部信息收集、内容发现(Deparos)、浏览器/SPA 爬取(Spitolas)和审计,由策略预设和扫描配置控制
- 灵活的输入:URL、OpenAPI/Swagger、Postman、Burp Suite、cURL、Nuclei JSONL
- 多会话身份验证:内联会话、会话文件或完整的认证配置,支持登录流程、令牌提取以及 IDOR/BOLA 测试
- JavaScript 扩展:通过内置的 JS 引擎实现自定义模块和钩子,并提供会话感知的 HTTP API
- 可扩展与可报告:并发 worker 池,支持按主机限速、混合内存/磁盘/Redis 队列,以及自包含的 HTML 报告
智能体扫描
- 进程内 olium 运行时:所有代理模式都运行在原生的 Go
pkg/olium引擎上:回合制循环、内置工具注册表、技能支持,以及可插拔的提供方驱动(无需子进程 SDK 池) - Autopilot:代理自主发现端点、运行扫描并对结果进行分类,可选多专家流水线和会话恢复
- Swarm:主代理选择模块、生成自定义 JS 攻击扩展、运行代码审计 + SAST、执行扫描并分类结果;支持定向或全范围(
--discover),并使用--diff/--last-commits进行聚焦变更的运行 - 源代码审计驱动:
audit、piolium和统一的audit调度器在前台运行源代码审计,共享同一发现模式和数据库标记 - 查询模式:用于代码审查、端点发现和密钥检测的单次提示
- 可插拔提供方:
openai-compatible(默认)、openai-codex-oauth、openai-api-key、openai-responses、anthropic-api-key、anthropic-oauth、anthropic-cli、anthropic-compatible、anthropic-vertex、google-vertex。相同的模式通过 REST API 暴露,支持 SSE 流式传输和 OpenAI 兼容的聊天端点
快速开始:原生扫描```bash
Scan a single target (default: balanced strategy)
vigolium scan -t https://example.com
Scan with a strategy preset
vigolium scan -t https://example.com --strategy deep
Scan specific modules only
vigolium scan -t https://example.com -m xss-reflected,sqli-error
Scan from an OpenAPI spec
vigolium scan -T openapi.yaml -I openapi
Pipe URLs from stdin
cat urls.txt | vigolium scan
Run a single phase directly
vigolium run discovery -t https://example.com
Generate an HTML report
vigolium scan -t https://example.com --only discovery --format html -o report.html
有关完整流水线,请参阅[架构概览](https://docs.vigolium.com/architecture/overview),有关策略、配置文件和节奏配置,请参阅[策略指南](https://docs.vigolium.com/native-scan/strategies)。如需快速命令参考,请参阅 [docs.vigolium.com/getting-started/cheat-sheet](https://docs.vigolium.com/getting-started/cheat-sheet)。
## 服务器模式```bash
# Start API server with authentication
vigolium server -k my-secret-key
# Enable transparent HTTP proxy for traffic recording
vigolium server -k my-key --ingest-proxy-port 9003
# Auto-scan ingested traffic
vigolium server -k my-key --scan-on-receive
I don't see any content to translate — the input after "INPUT:" is empty. Please provide the chunk text and I'll translate it.```bash
Ingest traffic to a running server
cat urls.txt | vigolium ingest -s http://localhost:9002
Ingest an OpenAPI spec
vigolium ingest -s http://localhost:9002 -i api.yaml -I openapi
请参阅[运行服务器](https://docs.vigolium.com/server-mode/running-the-server)了解服务器设置,参阅[数据摄取](https://docs.vigolium.com/server-mode/ingestion)了解摄取工作流,并参阅 [API 概述](https://docs.vigolium.com/api-overview)获取完整的 REST API 参考。
> **Burp Suite 集成**:使用 [burp-vigolium](https://github.com/vigolium/burp-vigolium) 扩展将实时 Burp Suite 流量转发到运行中的 Vigolium 服务器。
## 认证扫描
Vigolium 支持针对 IDOR/BOLA 测试和权限提升检查的多会话认证扫描:```bash
# Inline session via CLI flag (name:Header:value)
vigolium scan -t https://example.com \
--auth "admin:Cookie:session_id=abc123" \
--auth "user:Cookie:session_id=xyz789"
# Load session(s) from a YAML/JSON file
vigolium scan -t https://example.com --auth-file ./admin-session.yaml
# Auth file with an automated login flow (token extraction, etc.)
vigolium scan -t https://example.com --auth-file ./login-flow.yaml
# Add custom headers (works with sessions)
vigolium scan -t https://example.com -H "Authorization: Bearer token123"
认证文件支持静态标头、Bearer 令牌,以及从 cookie、JSON 响应或标头中提取令牌的自动登录流程。预设示例见 public/presets/sessions/。完整指南请参阅认证指南。
--auth/--auth-file标志先前命名为--session/--session-file。旧名称仍可作为弃用别名使用。
智能体扫描
AI 驱动的扫描,智能体在底层原生扫描引擎上自主规划、执行漏洞评估并对结果进行分类:```bash
Autopilot: autonomous AI-driven scanning (in-process olium engine)
vigolium agent autopilot -t https://example.com vigolium agent autopilot -t https://example.com --source ./src --prompt "focus on auth bypass" vigolium agent autopilot -t https://example.com --diff main...feature/auth # diff-focused vigolium agent autopilot -t https://example.com --intensity deep # preset bundle
Swarm: AI-guided targeted or full-scope vulnerability scanning
vigolium agent swarm -t https://example.com/api/users --vuln-type sqli vigolium agent swarm -t https://example.com --discover # full-scope vigolium agent swarm -t https://example.com --source ./src --discover # source-aware full-scope vigolium agent swarm --input "curl -X POST https://example.com/api/login -d '{"user":"admin"}'"
Source-audit drivers (separate harness, do not route through olium)
vigolium agent audit --source ./src # default: auto (audit, fall back to piolium) vigolium agent audit --source ./src --driver audit --mode deep # vigolium-audit only (claude/codex) vigolium agent audit --source ./src --driver piolium --mode balanced # Pi-native (pi extension) only vigolium agent audit --source ./src --driver both # audit then piolium, back-to-back vigolium agent audit --source ./src --modes deep,confirm # chain modes (same as --intensity deep) vigolium agent audit --source ./src -S --output-dir ./audit-out # throwaway DB + bundled HTML report vigolium audit --source ./src # top-level alias
Direct olium access (TUI or headless)
vigolium ol # launch the olium TUI vigolium ol --prompt "..." # one-shot prompt (-p implies headless)
Agentic 扫描模式:
- **Autopilot**:自主扫描。CLI 直接调用 `pkg/olium/autopilot.Run`;服务器在同一循环周围添加 vigolium-audit 预备步骤、认证设置和冻结的上下文捆绑包
- **Swarm**:AI 引导的漏洞扫描,支持定向单请求和全范围(`--discover`)。主代理分析输入、选择模块、生成自定义 JS 扩展、运行代码审计和 SAST、执行扫描,并对结果进行分类处理
- **Audit**:通过 `vigolium agent audit` 进行源代码审计 — 一个统一分发器,用于运行内置的 **vigolium-audit**(claude/codex)和/或 **piolium**(Pi 原生)执行框架,通过 `--driver {auto|both|audit|piolium}` 选择(默认 `auto`:运行 audit,仅在 audit 失败时回退到 piolium)。各执行框架相互独立;**不要**通过 olium 路由。每个驱动在同一个父级 AgenticScan 下拥有各自的子行,并在扫描后对发现结果进行去重。没有独立的 `agent piolium` 子命令 — piolium 通过 `--driver=piolium` 运行
> **独立审计 CLI**:agentic 安全审计还随附了独立的 CLI,可独立于 Vigolium 运行:[vigolium-audit](https://github.com/vigolium/vigolium-audit)(`vigolium agent audit` 背后的执行框架)和 [piolium](https://github.com/vigolium/piolium)(`vigolium agent audit --driver=piolium` 背后的 Pi 原生驱动)。
完整指南请参阅 [agent 模式指南](https://docs.vigolium.com/agentic-scan/agent-mode)。
## ⚡ Vigolium 云控制台
面向希望获得 Vigolium 强大功能又无需管理基础设施的团队的云端解决方案。Console 是 Vigolium 的**升级版、功能完备版本**:托管扫描、集中化报告、团队协作,以及在开源核心之上叠加的额外功能,让您可以专注于修复漏洞,而非维护工具。
> 在 [console.vigolium.com](https://console.vigolium.com/) 查看云控制台。
## 原生扫描层
原生扫描管线由模块化层组成,每层均有独立文档:
| 层 | 描述 | 文档 |
|-------|-------------|------|
| **内容发现 (Deparos)** | 自适应目录/文件枚举,带基于指纹的软 404 检测 | [docs.vigolium.com/native-scan/phases/discovery](https://docs.vigolium.com/native-scan/phases/discovery) |
| **浏览器爬虫 (Spitolas)** | 由 Chromium 驱动的状态机爬虫,支持 CDP 流量捕获 | [docs.vigolium.com/native-scan/phases/spidering](https://docs.vigolium.com/native-scan/phases/spidering) |
| **审计** | 主动/被动漏洞扫描,包含插入点提取和 DiffScan 框架 | [docs.vigolium.com/native-scan/phases/audit](https://docs.vigolium.com/native-scan/phases/audit) |
| **扫描器模块** | 207 个主动和 116 个被动模块,覆盖 OWASP Top 10 及更广范围 | [docs.vigolium.com/native-scan/modules-reference](https://docs.vigolium.com/native-scan/modules-reference) |
## 文档
完整文档位于 [docs.vigolium.com](https://docs.vigolium.com/)。发布说明和版本历史见 [CHANGELOG](https://github.com/vigolium/vigolium/blob/HEAD/CHANGELOG.md)。快速链接:
| 主题 | 链接 |
|-------|------|
| 设置代理 | [docs.vigolium.com/getting-started/setup-agent](https://docs.vigolium.com/getting-started/setup-agent) |
| 启动原生扫描 | [docs.vigolium.com/getting-started/native-scan](https://docs.vigolium.com/getting-started/native-scan) |
| 启动 Agentic 扫描 | [docs.vigolium.com/getting-started/agentic-scan](https://docs.vigolium.com/getting-started/agentic-scan) |
| 启动 Agentic 审计 | [docs.vigolium.com/getting-started/agentic-security-audit](https://docs.vigolium.com/getting-started/agentic-security-audit) |
| 快速入门 | [docs.vigolium.com/getting-started/quickstart](https://docs.vigolium.com/getting-started/quickstart) |
| 速查表 | [docs.vigolium.com/getting-started/cheat-sheet](https://docs.vigolium.com/getting-started/cheat-sheet) |
| 服务器与数据接入 | [docs.vigolium.com/getting-started/server-and-ingestion](https://docs.vigolium.com/getting-started/server-and-ingestion) |
| 编写扩展 | [docs.vigolium.com/customization/writing-extensions](https://docs.vigolium.com/customization/writing-extensions) |
## JavaScript 引擎
直接运行 JavaScript/TypeScript 代码,或编写自定义扫描模块和钩子,无需重新编译:```bash
# Execute inline JavaScript
vigolium js --code 'let r = vigolium.http.get(TARGET); console.log(r.status)' -t https://example.com
# Run a JS file with timeout
vigolium js --code-file ./my-script.js -t https://example.com --timeout 60s
# Manage extensions
vigolium ext ls # list loaded extensions
vigolium ext docs --example # browse API with code examples
vigolium ext preset # install starter scripts
JS 引擎暴露了会话感知的 HTTP API,用于经过身份验证的测试:```javascript // Create a persistent session with shared cookie jar. // post() takes a string body — serialize objects yourself. let session = vigolium.http.session(); session.post( "https://app.example.com/login", JSON.stringify({ user: "admin", pass: "secret" }), { headers: { "Content-Type": "application/json" } } ); session.get("https://app.example.com/dashboard"); // cookies auto-sent
// Automated login flow with token extraction let authed = vigolium.http.login({ url: "https://app.example.com/api/auth", method: "POST", body: JSON.stringify({ username: "admin", password: "pass" }), extract: [{ source: "json", path: "$.token", apply_as: "Authorization: Bearer {value}" }] });
// IDOR/BOLA testing across multiple sessions let results = vigolium.http.authTest({ sessions: { admin: adminSession, user: userSession }, requests: [{ method: "GET", url: "https://app.example.com/api/users/1" }] });
// Multi-step authentication sequences let result = vigolium.http.sequence([ { url: "/csrf", extract: [{ source: "cookie", name: "csrf_token", as: "token" }] }, { url: "/login", method: "POST", body: "csrf={token}&user=admin" } ]);
// Parallel request batching (race conditions, IDOR) let responses = vigolium.http.batch([req1, req2, req3], { concurrency: 10 });
// CSRF token extraction let csrf = vigolium.http.csrf("https://app.example.com/form");
// HTTP request replay with variations let varied = vigolium.http.replay(rawRequest, [ { headers: { "Authorization": "Bearer admin_token" } }, { headers: { "Authorization": "Bearer user_token" } } ]);
扩展编写指南请参阅 [编写扩展](https://docs.vigolium.com/customization/writing-extensions),完整的 TypeScript API 定义请参阅 `pkg/jsext/vigolium.d.ts`。
## CLI 参考
<details>
<summary>展开完整的命令与标志参考</summary>
### 命令```
Scanning:
vigolium scan Run a native scan (deterministic multi-phase vulnerability scanning)
vigolium run <phase> Run a single native scan phase (alias for scan --only <phase>)
vigolium scan-url <url> Quick native scan of a single URL
vigolium scan-request Native scan from a raw HTTP request
Agentic scan (in-process olium engine):
vigolium agent autopilot Autonomous AI-driven vulnerability scanning
vigolium agent swarm AI-guided targeted or full-scope vulnerability scanning
vigolium agent query Single-shot prompt (code review, endpoint discovery)
vigolium agent olium Direct olium TUI (or one-shot non-interactive via -p)
vigolium agent audit Unified driver dispatcher (vigolium-audit and/or piolium, --driver=auto|both|audit|piolium)
vigolium agent session Browse/replay agent session artifacts
vigolium olium | vigolium ol Top-level alias for `vigolium agent olium`
Server & ingestion:
vigolium server Start the API server with traffic ingestion
vigolium ingest Ingest traffic to a running server
vigolium storage Interact with cloud object storage (uploads, downloads)
Data & projects:
vigolium db Database operations (list, stats, export, clean, seed)
vigolium finding Browse and manage findings (load, tui)
vigolium traffic Browse and replay HTTP records (tui, replay)
vigolium replay Mutate a stored/supplied HTTP request and diff baseline vs replay
vigolium project Manage projects (create, list, use, config)
vigolium scope Manage scope rules
vigolium import Import findings/data from external sources
vigolium export Export scan results
Extensions & auth:
vigolium js Execute JavaScript/TypeScript code
vigolium ext Manage JavaScript extensions (eval, lint)
vigolium auth Manage authentication sessions (list, load, lint, totp)
Setup & introspection:
vigolium init Initialize a Vigolium workspace
vigolium config Manage configuration (ls, set, path, clean)
vigolium strategy Inspect scanning strategies and phases
vigolium module Inspect/enable scanner modules
vigolium doctor Diagnose environment & dependencies
vigolium version Show version info
标志```
Native Scan (vigolium scan / run): -t, --target Target URL -T, --target-file File containing target URLs -i, --input Input file path (- for stdin) -I, --input-mode Input format: urls, openapi, swagger, burp, curl, nuclei, har -m, --modules Modules to run (comma-separated or 'all') --strategy Strategy preset: lite, balanced, deep --scanning-profile Scanning profile name or YAML path --only Phases to run (comma-separated): ingestion, discovery (deparos), external-harvest, spidering (spitolas), known-issue-scan, dynamic-assessment, extension --skip Phases to skip (repeatable, same names as --only) -S, --stateless Use a throwaway temp database, discarded after the scan --fail-on Exit non-zero when a finding at/above this severity is present
Authentication: --auth Inline session definition (name:Header:value, repeatable) --auth-file Session YAML/JSON file path, supports login flows (repeatable) -H, --header Custom HTTP header (repeatable)
Performance: -c, --concurrency Concurrent workers (default: 50) -r, --rate-limit Max requests/sec (default: 0 = unlimited) --max-per-host Per-host concurrency cap (default: 2) --proxy HTTP/SOCKS5 proxy URL --timeout HTTP request timeout (default: 15s)
Agentic Scan (vigolium agent autopilot / swarm / query):
--source Path to source code for source-aware scanning
--files Specific files to include relative to --source
--source-label Label for source code ingestion
--provider Olium provider: openai-compatible (default), openai-codex-oauth,
openai-api-key, openai-responses, anthropic-api-key,
anthropic-oauth, anthropic-cli, anthropic-compatible,
anthropic-claude-sdk-bridge, anthropic-vertex, google-vertex
--model Model ID override
--oauth-token OAuth bearer token (anthropic-oauth)
--oauth-cred OAuth/SA file path (openai-codex-oauth, anthropic-vertex,
google-vertex)
--llm-api-key API key (anthropic-api-key, openai-api-key)
--vuln-type Vulnerability type focus (sqli, xss, ssrf, ...)
--prompt Free-text task guidance (same as the positional [prompt])
--plan-file Plan file mixing guidance + raw seed HTTP request(s)
--knowledge-base File/dir describing the app; prose is distilled, traffic
exports (HAR/Burp/curl/OpenAPI/Postman) are ingested
--prior-context Front-load existing project traffic/findings: auto, summary, off
--intensity Preset bundle: quick, balanced, deep
--diff Diff range / PR URL / HEADN for change-focused scans
--last-commits Shorthand for --diff HEADN
--code-audit Enable AI code audit (default: on with --source)
--discover Run discovery+spidering before planning (swarm)
--audit vigolium-audit mode: lite, balanced, deep, mock, off
--piolium Piolium audit mode (empty = auto-pick)
--resume Resume a durable-autopilot run by agentic-scan UUID
--session-dir Pin the session dir for this run's debug artifacts
--transcript Copy transcript.jsonl out after the run
--max-iterations Max triage-rescan iterations
--max-commands Cap on agent tool calls
--token-budget Cap on aggregate tokens
--max-duration Max agent wall-clock time (0 = no limit)
--only / --skip / --start-from Phase control (swarm)
Source audit (vigolium agent audit / vigolium audit): --driver auto (default), both, audit, piolium --intensity Preset: quick, balanced, deep (deep = modes deep,confirm) --mode Mode override: lite, balanced, deep, revisit, confirm, merge, ... --modes Chain modes back-to-back (e.g. deep,confirm) --list-modes Print the audit mode graph and exit --agent Coding agent for the audit leg: claude or codex --keep-raw Keep raw output under /vigolium-results/ (on by default) --clean-raw Remove the source-tree raw copy after the run -S, --stateless Run into a throwaway DB and auto-render an HTML report --output-dir Bundle the HTML report + raw results into one folder (needs -S) --no-dedup Skip the post-pass project-wide findings dedup --no-preflight Skip the pre-audit auth/model roundtrip checks -i, --interactive Drive the audit yourself in the coding agent (audit driver only)
JavaScript: --code Inline JavaScript to execute --code-file Path to JS/TS file to execute --timeout Execution timeout (default: 30s)
Output: -j, --json Compact, token-aware JSON output (read/query commands) --format Output format (comma-separated for multiple): console, jsonl, html, sqlite (needs -S), fs (flat traffic/finding tree) -o, --output Output file path --silent Suppress all output except findings -v, --verbose Verbose logging
</details>
## 仓库布局
`platform/` 目录包含外部工具、UI 仪表板,不属于核心扫描器的一部分。不应对其进行任何修改。
## 基准测试
Vigolium 持续针对故意存在漏洞的应用程序进行基准测试,并通过漏洞赏金和负责任的披露计划,对真实世界目标进行大量测试。
- **自托管(Docker):** [DVWA](https://github.com/digininja/DVWA)、[OWASP Juice Shop](https://github.com/juice-shop/juice-shop)、[VAmPI](https://github.com/erev0s/VAmPI)、[crAPI](https://github.com/OWASP/crAPI)、[Vulnerable Java App](https://github.com/DataDog/vulnerable-java-application)、[Vulnerable Nginx](https://github.com/detectify/vulnerable-nginx)、[OopsSec Store](https://github.com/kOaDT/oss-oopssec-store)(自定义 Next.js 应用)
- **外部(托管):** [Acunetix TestPHP](http://testphp.vulnweb.com)、[Gin & Juice Shop](https://ginandjuice.shop)、[Testfire](http://demo.testfire.net)
- **XSS 与多漏洞:** [BruteLogic XSS](https://github.com/vigolium/vigolium/blob/HEAD/test/benchmark/xss_scanner/)、[XBOW](https://github.com/vigolium/vigolium/blob/HEAD/test/benchmark/definitions/xbow/)(XSS、SQLi、SSTI、LFI、SSRF、XXE、命令注入)
使用 `make test-canary`(Docker 应用)或 `make test-integration`(XSS)运行基准测试。
## 开发```bash
make build # build and install
make test # run all tests (auto-installs gotestsum)
make test-unit # fast unit tests (-short, no external deps)
make test-e2e # E2E tests (requires Docker)
make lint # run linter
make fmt # format code
参见 HACKING.md 以获取完整构建指南、代码库地图和模块开发指南。
安全
Vigolium 是一款攻击性安全工具,其中有两个部分有意保持宽松权限:Agent 模式在无沙箱环境下运行(LLM 在主机上拥有完整的 shell、文件与网络访问权限),并且扩展可以运行任意命令。请在限定于本次测试项目的临时容器/虚拟机中运行 Agent 模式,并将不受信任的扩展视为不受信任的代码。开始前请参阅 SECURITY.md,并私下将 Vigolium 自身的漏洞报告给 [email protected]。
许可证
Vigolium 依据 GNU Affero General Public License v3.0 发布。衍生作品必须基于相同条款保持开源。
由 @j3ssie 倾心打造,@theblackturtle 作为核心初始贡献者。





