
xalgorix v4.6.72
自主式 AI 渗透测试代理 — 实时侦察、漏洞检测和漏洞利用编排。Go + TypeScript。
Xalgorix — 开源 AI 渗透测试工具,证明漏洞真实存在
大多数扫描器只能检测。Xalgorix 能够证明。 一个自主 LLM 智能体执行完整的渗透测试方法论,随后由独立验证器重新利用每一个发现,之后才会生成报告——因此你得到的是证据,而不是一堆需要人工分诊的“可能存在问题”。自托管、私密、自带 LLM。使用 Go + TypeScript 构建。
🚀 快速开始 · 💡 为什么选择 Xalgorix · ✨ 功能特性 · 🎯 使用场景 · ☁️ 托管云服务 · 📖 文档
📸 截图
🖥️ 自托管仪表盘 — 在 127.0.0.1:9137 本地运行
| 概览仪表盘 | 扫描详情 | 发现 |
|---|---|---|
![]() | ![]() | ![]() |
☁️ 托管云仪表盘 — 位于 www.xalgorix.com 的全托管版本
🤝 赞助商
感谢 Swiftproxy 赞助 Xalgorix。
你的应用可能会因请求来源不同而表现不同。对于需要跨区域检查自己应用的 Xalgorix 用户,Swiftproxy 提供位置定向功能以审查区域行为,以及粘性会话功能以帮助在测试会话期间保持一致的 IP。它支持 HTTP(S) 和 SOCKS5,与 Xalgorix 支持的代理协议相同。
住宅代理低至 $0.70/GB。可免费测试,Xalgorix 用户使用优惠码 PROXY90 可享 10% 折扣。
🚀 快速开始
安装(一行命令):```bash curl -sSL https://www.xalgorix.com/install | bash
这会从最新发布版本中下载适用于你平台的预构建二进制文件(Linux 或 macOS,amd64/arm64)。然后运行交互式设置向导:```bash
xalgorix --setup
选择你的提供商,确认一个模型,并在提示时输入 API 密钥。为获得最佳效果,请使用当前的前沿模型,具备强大的推理能力、长上下文性能和可靠的工具调用能力——例如你可用的最新且能力出众的 GPT、Claude 或 Gemini 模型。较小或本地模型仍受支持,但在长时间自主扫描期间可能需要更多监督。Xalgorix 会将密钥私密存储在 ~/.xalgorix.env(权限模式 0600)中,并可为你启动仪表板。本地 Ollama 无需 API 密钥。
如果你选择不立即启动,可稍后使用 xalgorix --web 启动,并打开 http://127.0.0.1:9137。你可以随时在 Settings → LLM 下更改提供商或高级选项,或重新运行 xalgorix --setup。
或使用 Docker 运行——开箱即用,无需工具链:```bash
docker run --rm -p 9137:9137
--privileged
-v xalgorix-data:/data
xalgord/xalgorix:latest
`--privileged` 赋予工具集与以 root 身份原生运行时相同的主机级访问权限。Docker 的默认沙箱会丢弃 capabilities(如 `NET_ADMIN`)并应用 seccomp 过滤器,这会破坏底层工具(iptables/route 更改、ARP 欺骗/MITM、tun/tap VPN、基于 ptrace 的调试器、masscan 接口调优)。由于镜像无法自行授予这些权限,必须在运行时设置。该容器是一个一次性的、网络隔离的扫描沙箱,以 root 身份运行——privileged 是预期的运行姿态;切勿在未启用认证的情况下公开暴露仪表板。偏好最小权限?将 `--privileged` 替换为 `--cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined`。
打开 `http://localhost:9137`。你**无需 LLM 密钥即可开始**——仪表板无需密钥即可启动;在 **Settings → LLM** 下设置模型 + API 密钥(它会持久化到 `/data` 卷)。如果你不传入 `XALGORIX_USERNAME`/`XALGORIX_PASSWORD`,首次运行时会生成一个随机管理员密码并打印到容器日志中。
**最简单的方式 — Docker Compose**(为你映射端口 + 持久化卷):```bash
curl -sSLO https://raw.githubusercontent.com/xalgorix/xalgorix/main/docker-compose.yml
docker compose up -d
docker compose logs -f # shows the generated admin password on first start
该镜像预装了广泛的安全攻防工具集(nmap、nuclei、httpx、subfinder、katana、ffuf、gobuster、sqlmap、masscan、dalfox、feroxbuster 等),并且保留了所有包管理器(apt、go、cargo、pipx、npm),以便代理在运行时仍能自动安装任何缺失的组件。容器内默认以 root 身份运行——请将该容器视为一次性的、网络隔离的扫描沙箱,切勿在未启用认证的情况下暴露仪表盘。镜像同时为 amd64 和 arm64 架构发布。
或从源码构建(需要 Go 1.26+ 和 Node.js):```bash git clone https://github.com/xalgorix/xalgorix.git cd xalgorix make build sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix
> [!TIP]
> 更喜欢零配置?完全托管版本运行在 [www.xalgorix.com](https://www.xalgorix.com/) —— 点击即可扫描,无需安装或 API 密钥。
### 🤖 自动审查拉取请求 —— 免费的 GitHub App
想要对每个拉取请求进行零配置的安全审查?安装 **[Xalgorix GitHub App](https://github.com/apps/xalgorix)**。它会读取每个 PR 的 diff 并在拉取请求上评论安全审查 —— 注入、认证缺陷/IDOR、SSRF、密钥、不安全模式。新提交时会就地更新,你可以评论 **`@xalgorix review`** 按需重新运行。无需工作流文件、无需 API 密钥、无需账户 —— 而且免费。
<div align="center">
[**➕ 将 Xalgorix 添加到 GitHub →**](https://github.com/apps/xalgorix/installations/new)
</div>
如需在 CI 中进行合并门禁和完整的漏洞验证渗透测试,请使用[托管扫描器](https://www.xalgorix.com/)或 GitHub Action。
> [!IMPORTANT]
> 仅在您拥有或获得明确测试许可的系统上使用 Xalgorix。
> [!TIP]
> 不想自托管?完全托管版本可在 [www.xalgorix.com](https://www.xalgorix.com/) 获取 —— 点击即可扫描,无需安装或 API 密钥。
## 📚 目录
| | | |
| --- | --- | --- |
| 📸 [截图](#-screenshots) | 🔩 [配置](#-configuration) | 🧾 [环境变量](#-environment-variables) |
| 🚀 [快速开始](#-quick-start) | 🆙 [升级](#-upgrading-from-previous-versions) | 🔤 [提供商前缀](#-provider-prefixes) |
| 🔎 [概述](#-overview) | 🏃 [运行](#-running) | 💻 [CLI 参考](#-cli-reference) |
| 💡 [为什么选择 Xalgorix](#-why-xalgorix) | 🧰 [服务模式](#-service-mode) | 📡 [API 摘要](#-api-summary) |
| 🎯 [使用场景](#-use-cases) | 🔁 [Web UI 工作流](#-web-ui-workflow) | 💾 [数据存储](#-data-storage) |
| ✨ [功能特性](#-features) | 🔀 [扫描模式](#-scan-modes) | 🧪 [开发](#-development) |
| 📥 [安装](#-installation) | 📂 [扫描你的代码](#-scan-your-code-no-target-needed) | 🚨 [安全注意事项](#-safety-notes) |
| 🧭 [方法论](#-methodology) | 📄 [报告](#-reports) | 📜 [许可证](#-license) |
| 🔧 [设置](#-settings) | 🔗 [链接](#-links) | 🤝 [赞助商](#-sponsors) |
## 🔎 概述
Xalgorix 是一个自托管的 AI 渗透测试平台,用于授权安全测试、漏洞评估和漏洞赏金工作流。它结合了 LLM 驱动的自主代理、浏览器自动化、终端工具、全面的 22 阶段测试方法论、实时 WebSocket 遥测、带 CVSS 评分的发现管理、品牌化 PDF 报告生成,以及与 AgentMail、Discord 和 Telegram 的集成。
与仅云端的 DAST 扫描器不同,Xalgorix 完全在您的机器上运行。您自带 LLM 提供商(OpenAI、Anthropic、DeepSeek、Gemini、Groq、Ollama、MiniMax)并控制模型、推理强度、速率限制和代理配置。任何扫描数据、API 密钥或目标信息都不会离开您的基础设施。
默认体验是 Web UI。从一个本地仪表板,您可以启动扫描、监控活动运行、检查发现、配置模型/提供商设置、管理环境变量、生成品牌化 PDF 报告,以及删除或恢复历史扫描。
## 💡 为什么选择 Xalgorix
大多数扫描器**检测**。Xalgorix **证明**。一个自主代理按照 22 阶段方法论工作,然后一个独立的验证器在报告之前重新测试每个候选发现 —— 因此您获得的是带有证据的漏洞验证结果,而不是一堆需要分类的“可能”。
- 🧠 **AI 代理,而非模板引擎** —— 对认证流程、业务逻辑、IDOR/BOLA 以及签名扫描器遗漏的链式漏洞进行推理。
- ✅ **漏洞验证发现** —— 一个独立的验证器独立复现每个发现;不确定的会被标记以供审查,绝不会被伪装成已确认。
- 🔒 **自托管且私密** —— 在您的机器上使用您自己的 LLM 密钥运行;任何目标数据、密钥或发现都不会离开您的基础设施。
- 🧩 **自带 LLM** —— OpenAI、Anthropic、DeepSeek、Gemini、Groq、Ollama 或 MiniMax —— 或任何 OpenAI 兼容网关,如 [LiteLLM](#-litellm--openai-compatible-gateways-github-copilot-claude-opus-codex-openrouter-azure-local-models)(GitHub Copilot、Codex、OpenRouter、Azure)。您控制模型、推理强度和成本。
- 📄 **审计就绪报告** —— 带有 CVSS 评分、概念验证和修复建议的品牌化 PDF。
### 📊 对比
| | **Xalgorix** | 模板扫描器(如 Nuclei) | 爬虫扫描器(如 OWASP ZAP) | 商业 DAST |
| -------------------------------------------- | ------------------------ | ------------------------------- | ---------------------------------- | ---------------------- |
| 方法 | 自主 AI 代理 | 签名 / 模板 | 爬虫 + 主动规则 | 签名 + 启发式 |
| 业务逻辑 / IDOR / 认证绕过覆盖 | ✅ | 有限 | 有限 | 部分 |
| 漏洞验证(证明影响) | ✅ 独立验证器 | ❌ | ❌ | 部分 |
| 误报负载 | 低(已证明) | 取决于模板 | 高 | 中 |
| 自托管 / 数据保留本地 | ✅ | ✅ | ✅ | 通常为云端 |
| 自带 LLM | ✅ | — | — | ❌ |
| 品牌化 PDF 报告 | ✅ | ❌ | 基础 | ✅ |
| 成本 | 开源 + 您的 LLM | 免费 | 免费 | $$$ |
> 方向性对比 —— Nuclei 和 ZAP 在各自领域都很出色。Xalgorix 在其上增加了推理密集型的发现和漏洞验证层。
### ☁️ 自托管 vs 托管云
Xalgorix 是免费且开源的 —— 永久自托管,无任何附加条件。[托管云](https://www.xalgorix.com/)运行**相同**的漏洞验证引擎;它的存在是为了那些不想管理 API 密钥、基础设施和不可预测的 LLM 账单的人。两者都是一流的 —— 选择适合您的。
| | **自托管**(本仓库) | **[托管云](https://www.xalgorix.com/)** |
| ---------------------------------- | ---------------------------------------- | ----------------------------------------------- |
| 起步价格 | 免费引擎,Apache-2.0 | 免费账户 · 一次性 $1 评估 |
| LLM API 密钥 | 自带并管理 | 已包含 —— 无需操心 |
| 每次扫描成本 | 原始 LLM token —— 可变,可能激增 | 每个活动主机 1 积分 —— 可预测 |
| 设置与运维 | 您安装、更新并运行工具链 | 无需运行任何东西 —— 约 60 秒内扫描 |
| 带外基础设施(SSRF/盲 RCE) | 搭建您自己的 OOB 服务器 | 包含托管 OOB |
| 调度 | 您的基础设施上的内置调度器 | 托管每日 / 每小时调度 |
| 团队 · RBAC · 共享积分 | 单操作员实例 | 团队上的组织工作区 |
| 更新 | `git pull` + 重新构建 | 始终使用最新引擎 |
| 数据驻留 / 离线 | ✅ 保留在您的基础设施上 · 支持气隙 | 在我们的基础设施上运行(可提供 DPA) |
**自托管如果**数据必须留在您的网络上,您想要完全控制,或者您将离线/气隙运行 —— 这正是它的用途。**使用云如果**您宁愿跳过 API 密钥、基础设施和意外的 token 账单,并且只为实际扫描的活动主机付费。
<div align="center">
[**☁️ 评估托管云 —— $1 试用 →**](https://www.xalgorix.com/pricing) · [**⚖️ 对比云和自托管 →**](https://www.xalgorix.com/hosted-vs-self-hosted)
</div>
如果 Xalgorix 为您节省了一个分类周期,请**[⭐ 给仓库加星](https://github.com/xalgorix/xalgorix)** —— 这确实能帮助其他人找到它。
## 🎯 使用场景
| 使用场景 | Xalgorix 如何帮助 |
| -------- | ------------------ |
| **渗透测试** | 对授权目标运行完整的 22 阶段方法论。AI 代理处理侦察、漏洞发现、注入测试、SSRF、IDOR、认证绕过、竞态条件等 —— 然后在报告之前验证发现。 |
| **漏洞赏金狩猎** | 将 Xalgorix 指向范围内的目标,让代理枚举攻击面、测试常见漏洞类别,并呈现带有 CVSS 评分和概念验证证据的已验证发现。 |
| **红队行动** | 使用通配符和多目标扫描模式来映射组织的外部攻击面。浏览器辅助的 DAST 处理静态扫描器遗漏的认证流程、表单和运行时行为。 |
| **安全研究** | 新颖漏洞发现阶段推动代理超越已知模板匹配。自带 LLM(OpenAI、Anthropic、DeepSeek、Gemini、Ollama、MiniMax)以控制推理深度和成本。 |
| **持续安全测试** | 使用 `xalgorix --start` 作为系统服务运行。按计划扫描,将发现流式传输到 Discord 或 Telegram,并为利益相关者生成品牌化 PDF 报告。 |
| **DAST 自动化** | 针对 Web 应用程序的浏览器驱动测试 —— 认证流程、表单、JavaScript 渲染内容和运行时行为。与 Caido 集成以进行代理流量检查。 |
## ✨ 功能特性
| 领域 | 能力 |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| 📊 仪表板 | 默认在 `127.0.0.1:9137` 上的本地 Web UI,扫描管理、实时状态、批量扫描操作和历史扫描恢复。 |
| 🔍 扫描 | 单目标、DAST、通配符和多目标流程,可选择方法论阶段。 |
| 📡 实时遥测 | 通过 WebSocket 的工具调用、代理消息、发现、错误、HTTP 活动和 LLM 活动。 |
| 🐞 发现 | 扫描详情页、严重性过滤器、CVSS 详情、发现索引和已验证发现工作流。 |
| 📄 报告 | 带有目标/公司名称、上传徽标、报告列表、打开/下载/删除操作的品牌化 PDF 报告。 |
| 🔔 集成 | AgentMail 测试收件箱、验证邮件、OTP 流程、邮件分类事件、Discord 和 Telegram 通知。 |
| ⚙️ 配置 | 用于 LLM、AgentMail、Discord、Telegram、代理、运行时、浏览器、认证、速率限制和资源的仪表板设置。 |
| 🛡️ 运行时安全 | 资源感知的实例限制和仅回环绑定,除非使用认证明确配置外部访问。 |
## 📥 安装
最快的路径完全不需要工具链。
### ⚡ 一行安装(预构建二进制)```bash
curl -sSL https://www.xalgorix.com/install | bash
下载适用于你平台的最新发布二进制文件(Linux 或 macOS,amd64/arm64),并将其安装到 /usr/local/bin(若无 sudo 权限则安装到 ~/.local/bin)。可通过 XALGORIX_INSTALL_DIR 覆盖安装目录,或使用 XALGORIX_VERSION=vX.Y.Z 固定版本。
以交互方式完成首次配置——无需手动编辑环境文件:```bash xalgorix --setup
向导在重新运行时保留现有设置,在终端中隐藏 API 密钥输入,并在完成后可选地启动 Web UI。
### 🐳 Docker```bash
docker run --rm -p 9137:9137 \
--privileged \
-e XALGORIX_LLM=openai/gpt-5.6 \
-e XALGORIX_API_KEY=your_openai_api_key \
-v xalgorix-data:/data \
ghcr.io/xalgord/xalgorix:latest
--privileged(或更窄的 --cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined)为工具集提供类宿主机访问权限。Docker 默认沙箱会丢弃 capabilities 并过滤 syscalls,这会破坏底层工具(iptables/route/interface 变更、ARP-spoof/MITM、tun/tap VPN、基于 ptrace 的调试器)。镜像无法自行授予这些权限——它们是运行时决策——因此请传入该标志,或使用提供的 docker-compose.yml,它会为你设置好。
该镜像开箱即用:预装了广泛的攻防安全工具集(nmap、nuclei、httpx、subfinder、dnsx、naabu、katana、ffuf、gobuster、dalfox、feroxbuster、sqlmap、masscan、nikto、whatweb、hydra 等),以及用于浏览器辅助 DAST 的 Chromium。它还保留了完整的包管理器集合(apt、go、cargo、pipx、npm),因此 agent 会在运行时自动安装任何缺失的内容。扫描数据持久化到 /data 卷,服务器在容器内绑定 0.0.0.0——在将其暴露到 localhost 之外前,请设置 XALGORIX_USERNAME/XALGORIX_PASSWORD。
容器按设计以 root 运行(引擎仅对 uid 0 启用运行时自动安装,且 apt/go/cargo 安装需要系统写入权限)。请将其视为一次性的、网络隔离的扫描沙箱。相同的标签会发布 linux/amd64 和 linux/arm64 的多平台 manifest,因此 Docker 会自动选择原生镜像。
首次运行时,如果你未设置 dashboard 认证,容器会生成一个随机管理员密码并将其打印到日志中(镜像绑定 0.0.0.0,引擎在没有认证的情况下不会这样做)。设置 XALGORIX_USERNAME + XALGORIX_PASSWORD(或 XALGORIX_PASSWORD_HASH)以使用你自己的凭据。二进制文件在容器内绝不会自我更新(XALGORIX_NO_AUTO_UPDATE=1)——拉取新的镜像标签以升级。nuclei 引擎及其漏洞模板会在每次镜像构建时刷新到最新版本(发布 CI 和 redeploy.sh 会强制执行此操作);传入 --build-arg NUCLEI_VERSION=vX.Y.Z 以固定引擎版本,或使用 NUCLEI_REFRESH=0 ./redeploy.sh 以复用 Docker 的缓存。
📋 要求(从源码构建)
| 要求 | 备注 |
|---|---|
| OS | Linux 或 macOS(amd64/arm64)。 |
| Go | 1.26 或更新版本。 |
| Node.js + npm | 从源码构建捆绑的 React Web UI 时需要。 |
| 安全工具 | 仅在启用自动安装时按需安装。 |
检查你的 Go 版本:```bash go version
### 🔨 从源码构建```bash
git clone https://github.com/xalgorix/xalgorix.git
cd xalgorix
make build
sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix
make build 将 React Web UI 构建到 internal/web/static,然后构建 Go 二进制文件。
📦 使用 Go 安装```bash
GOPROXY=direct GOSUMDB=off go install github.com/xalgord/xalgorix/v4/cmd/xalgorix@latest
## 🔩 配置
Xalgorix 按以下顺序加载配置。后面的来源会覆盖前面的来源。
| 顺序 | 来源 |
| ----- | -------------------------------------------------------------- |
| 1 | `/etc/xalgorix.env` |
| 2 | 通过 `sudo` 启动时的 `/home/<sudo-user>/.xalgorix.env` |
| 3 | `~/.xalgorix.env` |
| 4 | 进程中已存在的环境变量 |
创建本地环境文件:```bash
nano ~/.xalgorix.env
🧩 最小配置
为获得最强的自主扫描结果,请选择当前的前沿模型。下方的模型 ID 是一个具体示例;无需等待 Xalgorix 发布新版本,即可输入更新的兼容模型 ID。```bash XALGORIX_LLM=openai/gpt-5.6 XALGORIX_API_KEY=your_openai_api_key
### 🔌 提供商示例
OpenAI:```bash
XALGORIX_LLM=openai/gpt-5.6
XALGORIX_API_KEY=sk-...
自定义 OpenAI 兼容提供程序:```bash XALGORIX_LLM=custom/security-model XALGORIX_API_BASE=https://your-provider.example/v1 XALGORIX_API_KEY=your_provider_api_key
#### 🌉 LiteLLM / OpenAI 兼容网关(GitHub Copilot、Claude Opus、Codex、OpenRouter、Azure、本地模型)
由于 `XALGORIX_API_BASE` 接受任何 OpenAI 兼容的 `/v1/chat/completions` 端点,
Xalgorix 开箱即用即可配合 [LiteLLM](https://docs.litellm.ai/) 代理——无需
在 Xalgorix 侧做任何改动。LiteLLM 负责上游提供商的认证(Copilot 设备
登录、Azure 密钥、OpenRouter、Ollama 等);Xalgorix 只需以 OpenAI 协议与网关通信。
运行 LiteLLM(示例 `config.yaml`):```yaml
model_list:
- model_name: claude-opus-5
litellm_params:
model: github_copilot/claude-opus-5 # or openrouter/…, azure/…, ollama/…
general_settings:
master_key: sk-local-litellm-key
将 Xalgorix 指向它——使用 custom/ 前缀,以便模型名称按原样发送,并使用 OpenAI chat-completions 协议:```bash
XALGORIX_LLM=custom/claude-opus-5 # the LiteLLM model_name
XALGORIX_API_BASE=http://localhost:4000/v1 # your LiteLLM proxy
XALGORIX_API_KEY=sk-local-litellm-key # LiteLLM master_key / virtual key
同样的模式也适用于 GitHub Copilot Business/CLI、Claude Opus、Codex 风格的模型、
OpenRouter、Azure OpenAI 以及本地 Ollama 模型——任何 LiteLLM 能够路由的都可以。保留
`custom/`(或 `openai/`)前缀以及一个非 Anthropic/Gemini 的 `XALGORIX_API_BASE`,这样 Xalgorix
就会使用 LiteLLM 所期望的标准 OpenAI 请求格式。
### 🔔 可选集成```bash
GEMINI_API_KEY=AIza...
AGENTMAIL_POD=am_us_pod_47
AGENTMAIL_API_KEY=ak_...
XALGORIX_DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
XALGORIX_DISCORD_MIN_SEVERITY=high
🔐 仪表板身份验证```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this-password
> [!TIP]
> 生产环境部署建议使用 `XALGORIX_PASSWORD_HASH`。
## 🆙 从旧版本升级
本次发布包含稳定性与工作区隔离方面的改进,其中有一项破坏性变更以及几个值得了解的新配置项。
### 💥 破坏性变更:默认工作区已迁移至 `~/.xalgorix/data/`
扫描输出、笔记、计划任务及其他生成的产物现在位于 `~/.xalgorix/data/` 下,而不再存放于 `$CWD`(即启动二进制文件时所在的目录)。
若要保留原有行为,请将 `XALGORIX_DATA_DIR` 指向你当前的工作目录:```bash
export XALGORIX_DATA_DIR=$(pwd)
当在 $CWD 中检测到旧版标记(notes.json、_schedules/、vulnerabilities.json 或 YYYY-MM-DD/scan-* 目录)且 XALGORIX_DATA_DIR 未设置时,启动时会发出 [MIGRATION] 警告。Xalgorix 从不自动读取、复制或删除这些旧版文件;该警告仅供参考,每个进程仅触发一次。
🆕 新环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
XALGORIX_LLM_MAX_INFLIGHT | 4 × EffectiveMaxInstances | 限制所有正在运行的扫描中同时发出的 LLM 调用数量。最小值为 1。被取消的等待者不占用槽位。 |
🩺 新增健康端点计数器
GET /api/status 现在暴露:
| 字段 | 含义 |
|---|---|
panics_recovered | 已恢复且未导致崩溃的 Goroutine、HTTP 处理器和工具 panic 次数。 |
path_rejections | 被 Path_Policy 拒绝的文件系统写入次数(位于 data_dir / ~/.xalgorix/ / /tmp 之外)。 |
watchdog_kills | 被每个工具的硬超时看门狗终止的子进程数量。 |
admission_refusals | 因并发上限而被拒绝的扫描准入请求数量。 |
llm_inflight_cap | 此进程的有效 XALGORIX_LLM_MAX_INFLIGHT 值。 |
data_dir | 正在使用的已解析 Data_Dir。 |
allow_list | Path_Policy 接受的文件系统根目录。 |
🏃 运行
🪟 Web UI```bash
xalgorix --web
打开:```text
http://127.0.0.1:9137
使用不同的端口:```bash xalgorix --web --port 8080
### 🌐 外部访问
仅在启用仪表板身份验证后,才绑定到其他接口:```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this xalgorix --web --bind 0.0.0.0
[!WARNING] 服务器在未启用仪表板身份验证的情况下拒绝外部绑定。
🏹 CLI 扫描```bash
xalgorix --target https://example.com
使用自定义指令:```bash
xalgorix --target https://app.example.com --instruction "Focus on SQL injection, IDOR, and auth bypass. Avoid destructive tests."
🧰 服务模式
安装并作为系统服务启动:```bash sudo xalgorix --start
管理服务:```bash
sudo xalgorix --restart
sudo xalgorix --stop
sudo xalgorix --uninstall
查看日志:```bash journalctl -u xalgorix -f
### 🌍 远程服务访问
仅在启用仪表板认证后,才将服务暴露给远程浏览器:```bash
sudo tee -a /root/.xalgorix.env >/dev/null <<'EOF'
XALGORIX_BIND=0.0.0.0
XALGORIX_USERNAME=admin
XALGORIX_PASSWORD=change-this
EOF
sudo xalgorix --restart
然后打开 http://<server-ip>:9137。
如果进程正在监听但页面仍无法远程加载,请在服务器防火墙或云安全组中允许 TCP 端口 9137。
🏠 扫描本地/内部目标
默认情况下,Xalgorix 拒绝扫描回环地址、localhost、私有地址范围或其自身接口地址——这些是运行 Xalgorix 的机器,而非目标。在自托管、单租户的机器上,你可以选择扫描本地托管的演示/预发布应用:```bash
echo 'XALGORIX_ALLOW_LOCAL_TARGETS=true' | sudo tee -a /root/.xalgorix.env
sudo xalgorix --restart
仪表盘自身的监听器**始终**受到保护,即使启用了此选项。
> **⚠️ 共享 / 多租户 / 托管部署:请保持关闭。** 启用它
> 会让用户的扫描触达操作者自己的机器和内部网络。
> 默认关闭,因此无需任何操作即可保持安全——不要设置
> `XALGORIX_ALLOW_LOCAL_TARGETS`(或固定为 `XALGORIX_ALLOW_LOCAL_TARGETS=false`),
> 也不要将引擎的 Settings 页面暴露给不受信任的用户。
## 🔁 Web UI 工作流程
1. 在 `http://127.0.0.1:9137` 打开仪表盘。
2. 前往 Settings,确认 LLM 提供商、API 密钥、速率限制和可选集成。
3. 从 New Scan 创建扫描。
4. 选择扫描模式。
5. 当你需要聚焦运行时,选择方法学阶段。
6. 当只应实时报告特定严重级别时,设置严重级别过滤器。该过滤器仅影响实时仪表盘信息流和通知;PDF 报告和 `/api/findings` 始终包含 agent 发现的每一个漏洞。
7. 添加公司名称并上传 logo 以生成品牌化报告。
8. 从 Overview、Scan Detail 或 Live Feed 监控进度。
9. 从 Scans 和 Reports 打开发现详情、下载报告或管理历史扫描。
## 🔀 扫描模式
| 模式 | 最适合 |
| ---------------- | ------------------------------------------------------------------------------- |
| 🎯 单一目标 | 测试一个已知的 URL 或主机。 |
| 🌐 通配符 / 多目标 | 枚举相关目标并扫描发现的攻击面。 |
| 🧭 DAST | 针对 Web 应用、认证流程、表单和运行时行为的浏览器辅助测试。 |
## 📂 扫描你的代码(无需目标)
将 Xalgorix 指向一个代码库——Git URL、本地路径或上传的 zip——
它会直接扫描源代码。无需部署 URL,无需搭建任何基础设施。```bash
# Source review (SAST): audit the code, no running target required
xalgorix --source ./my-app --code-scan review
# Provision + DAST: build & run the app locally, then pentest the running instance
xalgorix --source https://github.com/org/app.git --code-scan provision
| 代码扫描模式 | 功能说明 | 验证级别 |
|---|---|---|
review | 读取源代码,追踪用户输入从入口点 → 危险汇聚点,并报告可达漏洞。无实时目标。 | 源码验证 — 在代码中证明可达(明确标注为未经运行时利用)。 |
provision | 检查仓库,在回环端口上构建并运行应用,然后对运行中的实例执行白盒引导的 DAST。如果应用无法构建,则回退到 review。 | 利用验证 — 针对运行中的应用复现。 |
--source接受 Git URL(浅克隆)、本地目录,或上传/解压归档的路径。在 Web UI / 托管应用中,你还可以上传代码库的.zip(POST /api/upload-source)。- 你仍然可以结合仓库和实时目标进行经典的白盒增强——该路径保持不变。代码扫描模式适用于代码库就是全部研究对象的情况。
Provision 模式在代理的沙箱中运行应用的构建/启动命令,并且仅对其启动应用所在的单个回环端口进行渗透测试——仪表盘和机器上的其他所有内容均不在范围内。
🧭 方法论
Xalgorix 将自主测试组织为 22 个阶段。
| 阶段 | 重点 |
|---|---|
| 1 | 侦察 |
| 2 | 手动漏洞发现 |
| 3 | 目录和文件发现 |
| 4 | CORS 和 Cookie 分析 |
| 5 | 身份验证和会话测试 |
| 6 | 注入测试 |
| 7 | SSRF 测试 |
| 8 | IDOR 和访问控制缺陷 |
| 9 | API 和 GraphQL 测试 |
| 10 | 文件上传测试 |
| 11 | 反序列化和 RCE |
| 12 | 竞态条件和业务逻辑 |
| 13 | 子域接管 |
| 14 | 开放重定向测试 |
| 15 | 电子邮件安全测试 |
| 16 | 云和基础设施 |
| 17 | WebSocket 测试 |
| 18 | CMS 特定测试 |
| 19 | 失效链接劫持和内容欺骗 |
| 20 | 漏洞利用验证 |
| 21 | 新型漏洞发现 |
| 22 | 最终报告 |
Web UI 中的阶段选择让你可以运行所有阶段,或仅运行特定任务所需的子集。
📄 报告
报告以 PDF 文件形式生成,可包含:
| 部分 | 包含内容 |
|---|---|
| 📌 摘要 | 执行摘要、目标元数据、扫描元数据和严重性概览。 |
| 🐞 发现 | 已验证的发现、CVSS 详情、技术分析和利用证明。 |
| 🔬 证据 | 概念验证命令、脚本、载荷说明和支持性观察。 |
| 🩹 修复 | 修复指导和优先后续步骤。 |
| 🎨 品牌 | 公司/目标名称和上传的徽标。 |
报告可从扫描详情页面和报告页面获取。报告行支持打开、下载和删除。
🔧 设置
大多数操作设置可以在 Web UI 的“设置”下更改。
| 区域 | 示例 |
|---|---|
| 🤝 任务 | 仪表盘请求速率限制 |
| 🧠 LLM | 模型、API 密钥、API 基础地址、推理强度、重试次数、最大迭代次数 |
| 📬 AgentMail | Pod 和 API 密钥 |
| 🔔 通知 | Discord webhook 和最低严重性、Telegram 机器人令牌、聊天 ID、最低严重性,以及可选的扫描完成摘要 |
| 🕵️ 代理 | 代理 URL、代理文件、轮换、TLS 验证 |
| 🧱 运行时 | 工作区、浏览器路径、自动安装控制 |
| 🔐 安全 | 仪表盘用户名、密码、密码哈希、绑定地址 |
| 📈 资源 | CPU/RAM/磁盘阈值和扫描并发预算 |
某些设置需要重启,因为它们影响进程启动或服务器绑定。UI 会标记这些字段。
🧾 环境变量
🧱 核心
| 变量 | 默认值 | 描述 |
|---|---|---|
XALGORIX_LLM | 无 | 用于 LLM 请求的提供商原生模型 ID。 |
XALGORIX_LLM_PROVIDER | 无 | 由仪表盘选择的提供商,与模型 ID 分开存储。 |
XALGORIX_API_KEY | 无 | 必需的 LLM 提供商 API 密钥。 |
XALGORIX_API_BASE | 提供商默认值 | 自定义 OpenAI 兼容 API 基础 URL。 |
XALGORIX_REASONING_EFFORT | high | 推理强度:none、low、medium、high 或 xhigh(对于 Ollama,xhigh 映射为 high)。 |
XALGORIX_LANGUAGE | en | AI 生成文本的输出语言(代理推理、笔记、发现、报告内容、扫描后聊天)。en 或 zh-CN。技术标记(载荷、命令、URL、CVE/CWE ID)始终保持原始形式。非拉丁语言会自动在仪表盘和 HTML 报告中渲染。 |
XALGORIX_PDF_CJK_FONT | 无 | 包含 CJK 字形的 TrueType(.ttf)字体的绝对路径,用于在导出的 PDF 报告中渲染非拉丁语言(例如简体中文)。仅支持 .ttf(不支持 .ttc/.otf)。没有它时,PDF 会回退到核心字体,非拉丁字形将无法渲染(HTML 报告不受影响)。 |
XALGORIX_OLLAMA_COMPATIBLE | false | 将 Ollama 推理语义应用于非标准端口上的自定义端点。端口 11434 会自动检测。 |
XALGORIX_LLM_MAX_RETRIES | 5 | 瞬时 LLM 失败的重试次数。 |
XALGORIX_MEMORY_COMPRESSOR_TIMEOUT | 30 | 上下文压缩的超时时间(秒)。 |
XALGORIX_MAX_ITERATIONS | 0 | 代理迭代上限。0 表示无限制。 |
XALGORIX_PPROF_ADDR | 无 | 可选的 Go 性能分析器。设置后(例如 127.0.0.1:6060),在该地址的 /debug/pprof/ 启动独立的 pprof 服务器,用于 CPU/堆诊断。默认禁用。会暴露进程内部信息——请绑定回环地址并通过 SSH 隧道访问;切勿公开暴露。 |
GEMINI_API_KEY | 无 | 用于网络搜索增强的可选 Gemini 密钥。 |
🔒 Web 和安全
| 变量 | 默认值 | 描述 |
|---|---|---|
XALGORIX_BIND | 127.0.0.1 | Web 服务器监听地址。 |
XALGORIX_ALLOW_LOCAL_TARGETS | false | 在自托管安装中允许扫描本地托管的应用(localhost / 127.0.0.1 / 私有 IP)。仪表盘自身的监听器始终受保护。在共享/托管部署中请保持关闭。 |
XALGORIX_USERNAME | 无 | 仪表盘用户名。 |
XALGORIX_PASSWORD | 无 | 仪表盘密码。 |
XALGORIX_PASSWORD_HASH | 无 | 首选 bcrypt 密码哈希。 |
XALGORIX_WORKSPACE | 当前目录 | 扫描执行的工作区根目录。 |
🤝 集成
| 变量 | 默认值 | 描述 |
|---|---|---|
AGENTMAIL_POD | 无 | AgentMail pod 标识符。 |
AGENTMAIL_API_KEY | 无 | AgentMail API 密钥。 |
XALGORIX_DISCORD_WEBHOOK | 无 | 全局 Discord webhook。 |
XALGORIX_DISCORD_MIN_SEVERITY | 无 | 发送到 Discord 的最低严重性。 |
XALGORIX_TELEGRAM_BOT_TOKEN | 无 | 来自 @BotFather 的 Telegram 机器人令牌。 |
XALGORIX_TELEGRAM_CHAT_ID | 无 | Telegram 聊天/频道 ID(数字或 @username)。 |
XALGORIX_TELEGRAM_MIN_SEVERITY | 无 | 发送到 Telegram 的最低严重性。 |
XALGORIX_NOTIFY_SCAN_COMPLETE | false | 将扫描结束摘要发送到配置的 Discord/Telegram 目标。这是可选的,不影响逐漏洞警报。 |
CAIDO_PORT | 0 | Caido 代理端口。0 表示自动检测。 |
CAIDO_API_TOKEN | 无 | Caido API 令牌。 |
🚦 速率限制、代理和运行时
| 变量 | 默认值 | 描述 |
|---|---|---|
XALGORIX_RATE_LIMIT_REQUESTS | 60 | 每个窗口的仪表盘请求数。 |
XALGORIX_RATE_LIMIT_WINDOW | 60 | 仪表盘速率限制窗口(秒)。 |
XALGORIX_RATE_RPS | 10 | 持续出站请求速率。 |
XALGORIX_RATE_BURST | 20 | 出站突发大小。 |
XALGORIX_USE_PROXY | false | 启用代理路由。 |
XALGORIX_PROXY_REQUIRED | false | 要求目标 HTTP/浏览器路径使用一个上游代理,无直接回退。 |
XALGORIX_PROXY_URL | 无 | 单个代理 URL。覆盖代理文件。 |
XALGORIX_PROXY_FILE | 无 | 每行包含一个代理的文件。 |
XALGORIX_PROXY_ROTATION | roundrobin | 代理轮换策略:roundrobin 或 random。 |
XALGORIX_TLS_SKIP_VERIFY | false | 跳过测试流量的 TLS 验证。 |
XALGORIX_DISABLE_BROWSER | false | 禁用浏览器自动化。 |
XALGORIX_BROWSER_PATH | 自动 | 自定义 Chrome/Chromium 可执行文件路径。 |
XALGORIX_ALLOW_AUTO_INSTALL | 仅 root | 允许自动安装软件包。 |
XALGORIX_AUTO_INSTALL_SUDO | false | 允许带 sudo 前缀的自动安装。 |
🔤 提供商前缀
当 XALGORIX_API_BASE 为空时,Xalgorix 会根据模型前缀推断提供商默认值。
| 前缀 | 默认 API 基础地址 |
|---|---|
openai/ | https://api.openai.com/v1 |
anthropic/ | https://api.anthropic.com |
deepseek/ | https://api.deepseek.com/v1 |
groq/ | https://api.groq.com/openai/v1 |
google/ | https://generativelanguage.googleapis.com/v1 |
gemini/ | https://generativelanguage.googleapis.com/v1 |
ollama/ | http://localhost:11434/v1 |
minimax/ | https://api.minimax.io/v1 |
模型名称并未硬编码到此列表中。设置页面接受手动输入的模型 ID,因此无需等待 UI 下拉菜单更新即可使用更新的提供商模型。
💻 CLI 参考
| 标志 | 别名 | 描述 |
|---|---|---|
--web | -w | 启动 Web UI。 |
--port <port> | -p | Web UI 端口。默认:9137。 |
--bind <addr> | 无 | 绑定地址。默认:127.0.0.1。 |
--target <target> | -t | 目标 URL、主机、IP 或路径。可重复。 |
--instruction <text> | -i | 自定义扫描指令。 |
--model <model> | -m | 为此运行覆盖 XALGORIX_LLM。 |
--update | -up | 更新到最新版本。 |
--version | -v | 打印版本。 |
--start | 无 | 安装并启动系统服务。 |
--stop | 无 | 停止系统服务。 |
--restart | 无 | 重启系统服务。 |
--uninstall | 无 | 移除系统服务。 |
--help | -h | 显示帮助。 |
📡 API 摘要
| 方法 | 端点 | 用途 |
|---|---|---|
POST | /api/scan | 启动或保存扫描。 |
POST | /api/stop | 停止所有正在运行的扫描。 |
GET | /api/status | 当前全局状态。 |
GET | /api/scans | 列出扫描。 |
GET | /api/scans/:id | 获取扫描详情。 |
DELETE | /api/scans/:id | 删除扫描及其报告数据。 |
GET | /api/findings | 列出所有发现(跨扫描去重)。 |
GET | /api/findings/summary | 所有扫描的严重性统计。 |
GET | /api/report/:id | 下载 PDF 报告。 |
GET | /api/instances | 列出实时和历史实例。 |
GET | /api/instances/:id/events | 获取缓冲的事件历史。 |
POST | /api/instances/:id/stop | 停止特定实例。 |
POST | /api/instances/:id/start | 将已保存或已完成的扫描作为新运行启动。 |
POST | /api/instances/:id/restart | 使用相同配置重启。 |
POST | /api/instances/:id/pause | 暂停正在运行的扫描。 |
POST | /api/instances/:id/resume | 恢复已暂停的扫描。 |
POST | /api/upload-logo | 上传报告徽标。 |
POST | /api/upload-targets | 上传目标列表。 |
GET | /api/settings/environment | 列出可编辑的环境设置。 |
POST | /api/settings/environment | 保存环境设置。 |
GET | /api/settings/llm | 获取 LLM 设置。 |
POST | /api/settings/llm | 保存 LLM 设置。 |
GET | /api/settings/agentmail | 获取 AgentMail 设置。 |
POST | /api/settings/agentmail | 保存 AgentMail 设置。 |
GET | /ws | WebSocket 实时事件流。 |
💾 数据存储
Web 模式扫描数据存储在:```text
~/xalgorix-data/
|-- _saved/
|-- logos/
|-- queue_state.json
-- <target>/ -- /
-- <scan-id>/ |-- scan.json -- report.pdf
服务器将历史扫描记录保存在磁盘上,以便 UI 在刷新或重启后能够恢复。
## 🧪 开发
| 任务 | 命令 |
| --------------------------- | ----------------------------- |
| 📦 安装 Web UI 依赖 | `make webui-install` |
| 🔨 构建所有内容 | `make build` |
| ✅ 运行测试 | `go test ./...` |
| 🖥️ 从源码运行 Web UI | `go run ./cmd/xalgorix --web` |
| ⚡ 运行前端开发服务器 | `make webui-dev` |
## 🚨 安全注意事项
- 仅对授权目标使用 Xalgorix。
- 未经许可,不要对第三方系统进行主动测试。
- 启动前请审查扫描指令。
- 配置速率限制和代理设置以符合交战规则。
- 将仪表板暴露到外部需要身份验证。
- 自动安装默认对非 root 用户禁用,仅在你信任该环境时才应启用。
## 📜 许可证
Xalgorix 在 Apache License 2.0 下发布。参见 [LICENSE](https://github.com/xalgord/xalgorix/blob/main/LICENSE)。
## 🔗 链接
| 资源 | 链接 |
| ------------- | -------------------------------------------------------------------------------- |
| ☁️ 托管(云端) | [www.xalgorix.com](https://www.xalgorix.com/) |
| 📖 文档 | [docs.xalgorix.com](https://docs.xalgorix.com) |
| 🐛 问题 | [github.com/xalgorix/xalgorix/issues](https://github.com/xalgorix/xalgorix/issues) |
| ☕ 支持 | [buymeacoffee.com/xalgord](https://buymeacoffee.com/xalgord) |


