vigolium/vigolium
GitHub: vigolium/vigolium
一款融合AI代理与原生模块化引擎的高保真漏洞扫描器,提供可编程的智能扫描和确定性模块扫描两种互补模式。
Stars: 656 | Forks: 99
Vigolium - High-fidelity vulnerability scanner fusing agentic AI with native speed, modularity, and precision
Vigolium 提供两种互补的扫描模式:
- **原生扫描**(`vigolium scan`):**快速、强大且灵活**。确定性多阶段扫描,包含 250 多个模块,涵盖内容发现、浏览器/SPA 爬虫、主动/被动审计,覆盖注入、访问控制、文件/路径、API/协议、框架特定、云/基础设施以及带外(OAST)漏洞类别。
- **智能扫描**(`vigolium agent`):**深度审计你的代码库**。AI 驱动的扫描,可自主规划攻击、选择模块、生成自定义扩展并分类结果,将[深度源码审计](https://github.com/vigolium/vigolium-audit)与自主且有针对性的漏洞扫描相结合。
## 安装说明
### 快速安装(推荐)
```
curl -fsSL https://vigolium.com/install.sh | bash
```
### npm
```
npm install -g @vigolium/vigolium
```
### Docker
```
docker pull j3ssie/vigolium:latest
docker run --rm j3ssie/vigolium:latest scan -h
```
### 从源码构建
```
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](HACKING.md#build-and-run) 了解前置条件和构建详情。
| UI 仪表盘 | 流量仪表盘 |
|:---:|:---:|
|  |  |
| 静态报告 | 静态报告 |
|:---:|:---:|
|  |  |
| 原生扫描 | 智能扫描 |
|:---:|:---:|
|  |  |
## ⚡ Vigolium Cloud Console
专为希望获得 Vigolium 强大功能但无需管理基础设施的团队打造的云解决方案。Console 是 **Vigolium 的升级版、功能完备版本**:托管扫描、集中报告、团队协作,以及在开源核心之上附加的额外功能,让你专注于修复漏洞,而不是维护工具。
## 主要功能
### 原生扫描
- **235+ 扫描模块**:144+ 主动(模糊测试)+ 91+ 被动(模式匹配),覆盖 OWASP Top 10 及更广泛范围
- **带外测试(OAST)**:通过 interactsh 回调实现盲 XSS/SSRF/命令注入,具备自动 payload 关联
- **值感知变异**:根据语义类型(整数、UUID、JWT、电子邮件)对参数进行分类,并按进行变异
- **多阶段流水线**:外部信息收集、内容发现(Deparos)、浏览器/SPA 爬虫(Spitolas)以及审计,受策略预设和扫描配置文件控制
- **灵活的输入**:URL、OpenAPI/Swagger、Postman、Burp Suite、cURL、Nuclei JSONL
- **多会话身份验证**:内联会话、会话文件或包含登录流程、令牌提取和 IDOR/BOLA 测试的完整身份验证配置
- **JavaScript 扩展**:通过内嵌 JS 引擎和会话感知的 HTTP API 实现自定义模块和钩子
- **可扩展且可报告**:支持并发工作线程池(含每主机速率限制)、混合内存/磁盘/Redis 队列以及自包含 HTML 报告
### 智能扫描
- **进程内 olium 运行时**:每个智能模式均在原生 Go `pkg/olium` 引擎上运行:回合制循环、内置工具注册表、技能支持以及可插拔的 provider 驱动(无需子进程 SDK 池)
- **自动驾驶(Autopilot)**:智能体自动发现端点、运行扫描并分类发现结果,可选多专家流水线和会话恢复
- **集群(Swarm)**:主智能体选择模块、生成自定义 JS 攻击扩展、运行代码审计 + SAST、执行扫描并分类结果;支持针对性的单请求模式或全范围扫描(`--discover`),并提供 `--diff`/`--last-commits` 用于变更聚焦扫描
- **源码审计驱动**:`audit`、`piolium` 以及统一的 `audit` 调度器,运行前台源码审计,共享同一发现模式和数据库标签
- **查询模式**:用于代码审查、端点发现和密钥检测的单次提示
- **可插拔 provider**:`openai-codex-oauth`(默认)、`anthropic-api-key`、`anthropic-oauth`、`openai-api-key`、`anthropic-cli`、`google-vertex`。通过 REST API 暴露相同的模式,支持 SSE 流式传输和 OpenAI 兼容的聊天端点
## 快速入门:原生扫描
```
# 扫描单个目标(默认:均衡策略)
vigolium scan -t https://example.com
# 使用策略预设扫描
vigolium scan -t https://example.com --strategy deep
# 仅扫描特定模块
vigolium scan -t https://example.com -m xss-reflected,sqli-error
# 从 OpenAPI spec 扫描
vigolium scan -T openapi.yaml -I openapi
# 从 stdin 管道输入 URL
cat urls.txt | vigolium scan
# 直接运行单个阶段
vigolium run discovery -t https://example.com
# 生成 HTML 报告
vigolium scan -t https://example.com --only discovery --format html -o report.html
```
完整概览请参见 [docs.vigolium.com/architecture/overview](https://docs.vigolium.com/architecture/overview),策略、配置文件和速度配置请参见 [docs.vigolium.com/native-scan/strategies](https://docs.vigolium.com/native-scan/strategies)。
## 服务器模式
```
# 启动带身份验证的 API server
vigolium server -k my-secret-key
# 启用透明 HTTP proxy 进行流量记录
vigolium server -k my-key --ingest-proxy-port 9003
# 自动扫描接收的流量
vigolium server -k my-key --scan-on-receive
```
```
# 将流量注入到运行中的服务器
cat urls.txt | vigolium ingest -s http://localhost:9002
# 注入 OpenAPI spec
vigolium ingest -s http://localhost:9002 -i api.yaml -I openapi
```
服务器设置请参见 [docs.vigolium.com/server-mode/running-the-server](https://docs.vigolium.com/server-mode/running-the-server),摄入工作流请参见 [docs.vigolium.com/server-mode/ingestion](https://docs.vigolium.com/server-mode/ingestion),完整 REST API 参考请参见 [docs.vigolium.com/api-overview](https://docs.vigolium.com/api-overview)。
## 带身份验证的扫描
Vigolium 支持用于 IDOR/BOLA 测试和权限提升检查的多会话身份验证扫描:
```
# 通过 CLI flag 内联会话(name:Header:value)
vigolium scan -t https://example.com \
--auth "admin:Cookie:session_id=abc123" \
--auth "user:Cookie:session_id=xyz789"
# 从 YAML/JSON 文件加载会话
vigolium scan -t https://example.com --auth-file ./admin-session.yaml
# 通过自动登录流程(token 提取等)的 auth file
vigolium scan -t https://example.com --auth-file ./login-flow.yaml
# 添加自定义 headers(与 sessions 配合使用)
vigolium scan -t https://example.com -H "Authorization: Bearer token123"
```
认证文件支持静态头、Bearer 令牌以及从 cookies、JSON 响应或头中提取令牌的自动登录流程。预设示例可在 `public/presets/sessions/` 中找到。完整指南请参见 [docs.vigolium.com/native-scan/authentication](https://docs.vigolium.com/native-scan/authentication)。
## 智能扫描
AI 驱动的扫描,智能体可自主规划、执行和分类漏洞评估,底层使用原生扫描引擎:
```
# Autopilot:自主 AI 驱动扫描(进程内 olium 引擎)
vigolium agent autopilot -t https://example.com
vigolium agent autopilot -t https://example.com --source ./src --focus "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 引导的目标或全范围漏洞扫描
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 驱动程序(独立 harness,不通过 olium 路由)
vigolium agent audit --source ./src --mode deep # claude harness only (anthropic-*)
vigolium agent audit --driver=piolium --source ./src --mode balanced # Pi-native (pi extension)
vigolium agent audit --source ./src --mode balanced # both audit + piolium back-to-back
vigolium agent audit --source ./src --driver piolium --fallback # piolium with audit fallback
# 直接访问 olium(TUI 或 headless)
vigolium ol # launch the olium TUI
vigolium ol --prompt "..." # one-shot prompt (-p implies headless)
```
智能扫描模式:
- **自动驾驶(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}` 选择。工具集相互独立;**不要**通过 olium 路由。每个驱动在父级 AgenticScan 下作为单独子行,并在后处理阶段进行发现结果去重。没有独立的 `agent piolium` 子命令——piolium 通过 `--driver=piolium` 运行
完整指南请参见 [docs.vigolium.com/agentic-scan/agent-mode](https://docs.vigolium.com/agentic-scan/agent-mode)。
## 原生扫描层
原生扫描流水线由模块化层组成,每层均有独立文档:
| 层 | 描述 | 文档 |
|-------|-------------|------|
| **内容发现(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) |
| **扫描模块** | 154 个主动模块和 97 个被动模块,覆盖 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/)。快速链接:
| 主题 | 链接 |
|-------|------|
| 设置智能体 | [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) |
| 启动智能扫描 | [docs.vigolium.com/getting-started/agentic-scan](https://docs.vigolium.com/getting-started/agentic-scan) |
| 启动智能审计 | [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/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 代码,或编写自定义扫描模块和钩子,无需重新编译:
```
# 执行内联 JavaScript
vigolium js --code 'let r = vigolium.http.get(TARGET); console.log(r.status)' -t https://example.com
# 运行 JS 文件并设置超时
vigolium js --code-file ./my-script.js -t https://example.com --timeout 60s
# 管理 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,用于带身份验证的测试:
```
// 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" } }
]);
```
扩展编写指南请参见 [docs.vigolium.com/customization/writing-extensions](https://docs.vigolium.com/customization/writing-extensions),完整 TypeScript API 定义请参见 `pkg/jsext/vigolium.d.ts`。
## CLI 参考
### 命令
```
Scanning:
vigolium scan Run a native scan (deterministic multi-phase vulnerability scanning)
vigolium run
Run a single native scan phase (alias for scan --only )
vigolium scan-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, nuclei, burpxml, curl, postman
-m, --modules Modules to run (comma-separated or 'all')
--strategy Strategy preset: lite, balanced, deep
--scanning-profile Scanning profile name or YAML path
--only Single phase: ingestion, discover (deparos), spidering (spitolas),
external-harvest, spa, audit
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-codex-oauth, anthropic-api-key,
anthropic-oauth, openai-api-key, anthropic-cli,
google-vertex
--model Model ID override
--oauth-token OAuth bearer token (anthropic-oauth)
--oauth-cred OAuth/SA file path (openai-codex-oauth, google-vertex)
--llm-api-key API key (anthropic-api-key, openai-api-key)
--vuln-type Vulnerability type focus (sqli, xss, ssrf, ...)
--focus Focus area for the agentic scan
--intensity Preset bundle: quick, balanced, deep
--diff Diff range / PR URL / HEAD~N for change-focused scans
--last-commits Shorthand for --diff HEAD~N
--code-audit Enable AI code audit (default: on with --source)
--discover Run discovery+spidering before planning (swarm)
--audit Audit mode: lite, balanced, deep, off (autopilot/swarm)
--driver Audit driver: both, audit, piolium (agent audit)
--fallback Fall back to audit when piolium fails (agent audit)
--no-preflight Skip 'claude -p' preflight (agent audit)
--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)
JavaScript:
--code Inline JavaScript to execute
--code-file Path to JS/TS file to execute
--timeout Execution timeout (default: 30s)
Output:
-j, --json JSON output
--format Output format: console, jsonl, html
-o, --output Output file path
--silent Suppress all output except findings
-v, --verbose Verbose logging
```
## 仓库布局
`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](test/benchmark/xss_scanner/)、[XBOW](test/benchmark/definitions/xbow/)(XSS、SQLi、SSTI、LFI、SSRF、XXE、命令注入)
使用 `make test-canary`(Docker 应用)或 `make test-integration`(XSS)运行基准测试。
## 开发
```
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](HACKING.md)。
## 安全性
Vigolium 是一个攻击性安全工具,其两个部分故意保持宽松权限:**智能模式在无沙箱环境下运行**(LLM 拥有主机的完整 shell、文件及网络访问权限)以及**扩展可以运行任意命令**。请在隔离的容器/虚拟机(限定于目标范围)中运行智能模式,并将不受信任的扩展视为不受信任的代码。开始之前请阅读 [SECURITY.md](SECURITY.md),并将 Vigolium 自身的漏洞私下报告至 [contact@vigolium.com](mailto:contact@vigolium.com)。
## 许可证
Vigolium 采用 [GNU Affero General Public License v3.0](LICENSE) 发布。衍生作品必须在相同条款下保持开源。
由 [@j3ssie](https://x.com/j3ssie) 精心打造,[theblackturtle](https://github.com/theblackturtle) 为核心初始贡献者。标签:AI驱动, API安全, BeEF, DevSecOps, EVTX分析, GNU通用公共许可证, JSON输出, MITM代理, Node.js, npm, OAST, Streamlit, Web安全, 上游代理, 主动审计, 代理AI, 内容发现, 协议审计, 基础设施漏洞, 多阶段扫描, 开源, 文件遍历, 日志审计, 智能扫描, 框架漏洞, 模块化, 注入检测, 源代码审计, 爬虫, 网络安全, 自动化漏洞检测, 蓝队分析, 被动审计, 访问控制, 请求拦截, 隐私保护, 高保真