跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Go / GolangNuct

Xray Web 漏洞扫描器实战笔记

Xray 是长亭开源的 Web 漏洞扫描器,适合授权测试、靶场练习和自查。文章梳理了安装方式、三种常用模式(被动扫描、主动扫描、radium 爬虫)、与 Burp Suite 联动的方法,以及自定义 POC、结果报告和误报处理。结论很实际:被动代理更适合深度验证,主动扫描更适合快速摸底,生产环境要控制速率并先在测试环境验证。

赛博朋克发布于 2026/6/30更新于 2026/10/2283 浏览
Xray Web 漏洞扫描器实战笔记

Xray Web 漏洞扫描器

Xray 是长亭科技开源的一款 Web 漏洞扫描器,偏轻量,启动快,命令也不绕。它适合安全研究、渗透测试和开发自查这几类场景。我的使用感受是,它最顺手的地方不是'全自动扫出所有问题',而是把被动代理、主动探测、Burp 联动这些常见工作流串得比较顺。

注意:下面的内容只适用于授权测试、本地靶场练习或自有系统自查。未经授权扫描他人系统是违法的。

环境准备与安装

Xray 基于 Go 开发,Windows、Linux、macOS 都有现成二进制包,解压后就能跑,不需要额外依赖。

下载与运行

官方发布页: https://github.com/chaitin/xray/releases

常见平台对应的包名如下:

  • Windows:xray_windows_amd64.zip
  • Linux:xray_linux_amd64.zip
  • macOS:xray_macos_amd64.zip,M1/M2 选 arm64

Windows

  1. 解压压缩包。
  2. 双击 xray_windows_amd64.exe,或者在 CMD / PowerShell 里直接运行。
  3. 如果要扫描 HTTPS 流量,可以先生成证书:
./xray_windows_amd64.exe genca

生成的 ca.crt 需要导入浏览器和系统的'受信任的根证书颁发机构'。这一步不做,HTTPS 代理大概率会卡住。

Linux / macOS

  1. 解压并赋予执行权限:
unzip xray_linux_amd64.zip
chmod +x xray
  1. 如果要处理 HTTPS,同样先生成证书:
./xray genca

然后把 ca.crt 导入系统信任库。以 Ubuntu 为例:

sudo cp ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

核心工作模式

Xray 常用的其实就三种用法。选对模式,比盲目堆参数更重要。

模式描述适用场景优点
被动扫描 (webscan --listen)作为 HTTP 代理,监听端口并分析流量浏览器手动测试、Burp Suite 联动不容易漏掉复杂逻辑相关问题,误报也低
主动扫描 (webscan --url)自动爬取目标并做漏洞检测快速摸底、资产普查上手快,不需要人工持续干预
爬虫独立模式 (radium)
只负责爬链接,把结果交给其他工具
想把爬虫和检测拆开处理
灵活,方便接自定义检测流程

命令实战

⚠️ 下面的例子请放在本地靶场(比如 DVWA、Vulhub)或者明确授权的环境里跑。

被动扫描:最适合先上手

这个模式的思路很直接:让浏览器流量经过 Xray,它边转发边分析。实际测试里,这也是我最常用的方式,因为你手工点到哪里,它就看哪里,适合深一点的验证。

  1. 启动 Xray 监听本地 7777 端口,并输出 HTML 报告。
  2. 把浏览器代理指向 127.0.0.1:7777。
  3. 正常访问目标站点,Xray 会自动记录流量并做检测。
# Windows
.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output report_passive.html

# Linux / macOS
./xray webscan --listen 127.0.0.1:7777 --html-output report_passive.html

参数含义很直白:

  • --listen:指定监听地址和端口。
  • --html-output:扫描结束后生成 HTML 报告。

启动后,直接浏览目标站点,随便点击页面、提交表单就行。结束后看 report_passive.html,结果会比实时日志更好读。

主动扫描:快速摸底

如果你已经知道入口 URL,想先看一眼表面问题,用主动扫描更省事。

# 扫描单个 URL
./xray webscan --url http://testphp.vulnweb.com/ --html-output report_active.html

# 只跑部分插件,速度更快
./xray webscan --url http://testphp.vulnweb.com/ --plugins sqldet,xss --html-output report_fast.html

# 提高爬虫深度
./xray webscan --url http://testphp.vulnweb.com/ --max-depth 5 --html-output report_deep.html

这里几个参数值得记一下:

  • --url:起始地址。
  • --plugins:只启用指定检测模块,逗号分隔,比如 sqldet、xss、cmd-injection。
  • --max-depth:控制爬虫深度。太小会漏页面,太大又容易把时间花在无关链接上。

和 Burp Suite 联动

如果你已经在用 Burp,Xray 更像是一个补位工具。Burp 负责抓包、改包和人工验证,Xray 在后面做自动化检测。这个组合挺实用,尤其是你不想把 Burp 当成纯代理时。

流量链路可以理解为:浏览器 -> Burp -> Xray -> 目标服务器。

  1. 启动 Xray,监听 7777:
./xray webscan --listen 127.0.0.1:7777 --html-output report_burp.html
  1. 配置 Burp Suite:

    • 打开 Burp -> Proxy -> Options(或 Proxy Settings)。
    • 找到 Upstream Proxy Servers。
    • 添加规则,匹配所有主机 .*,指向 127.0.0.1:7777。
  2. 配置浏览器:

    • 浏览器代理指向 Burp,通常是 127.0.0.1:8080。
  3. 开始测试:

    • 在 Burp 里手工改包,或者把请求丢给 Repeater / Intruder。
    • Xray 会在后面接住这些流量并做检测,结果会写进 report_burp.html。

自定义配置和高级参数

Xray 的很多行为都能放进 config.yaml 控制。实际使用里,我一般会把常用参数收进配置文件,不然命令行太长,很容易看不清自己到底开了什么。

# 使用自定义配置文件
./xray webscan --url http://target.com --config my_config.yaml --html-output result.html

# 输出 JSON,方便接 CI/CD 或其他自动化流程
./xray webscan --url http://target.com --json-output result.json

# 限制扫描速率,避免把目标压得太狠
./xray webscan --url http://target.com --rate-limit 10 --html-output safe_report.html

自定义 POC 和联动工具

写一个自定义 POC

遇到新漏洞或者变种漏洞时,官方规则没及时跟上,自己补一个 POC 往往比等更新更快。Xray 用 YAML 写规则,门槛不高。

下面是一个简单的回显型命令注入检测示例:

创建 my_poc.yaml:

name: poc-yaml-custom-cmd-injection
rules:
  method: GET
  path: /ping?ip=127.0.0.1;whoami
expression: response.body.bcontains(b"root") || response.body.bcontains(b"user")
detail:
  author: your_name
  description: 自定义命令注入检测

加载这个 POC:

./xray webscan --url http://target.com --plugins my_poc.yaml --html-output custom_report.html
# 或者把 poc 放进 plugins 目录,让它默认加载

搭配 Radium

如果 Xray 自带爬虫不够用,可以先让 Radium 把链接爬出来,再交给 Xray 扫。这个拆法不花哨,但在批量处理时挺省心。

# 使用 Radium 爬取链接并保存
./radium --url http://target.com --output links.txt

# 批量交给 Xray 扫描
cat links.txt | xargs -I{} ./xray webscan --url {} --html-output batch_{}.html

报告怎么看,误报怎么处理

扫描结束后打开 .html 报告,先看概览,再看细节。顺序别反了,不然很容易被一堆条目带跑。

  1. 概览:看漏洞总数、风险等级分布。
  2. 详情:点开具体漏洞,重点看这几项:
    • 漏洞类型:比如 SQL Injection (Blind)
    • 请求包 (Request):Xray 发送的探测 Payload
    • 响应包 (Response):服务器返回内容,尤其是高亮部分,通常是判断依据
  3. 误报处理:
    • 如果确认是误报,可以在配置文件的 blacklist 里加特征,或者把自定义 POC 的表达式收紧一点。
    • 常见误报来源是 WAF 的特殊响应,或者页面内容本身随机变化太多。

常见问题

Q1: 扫描 HTTPS 网站报错或没反应?

A: 先生成并信任 Xray 的 CA 证书。运行 ./xray genca,然后把 ca.crt 导入系统和浏览器的'受信任的根证书颁发机构'。这一步没做,HTTPS 代理通常跑不通。

Q2: 扫描速度太慢怎么办?

A: 可以先只开必要模块:

  1. 用 --plugins 只启用需要的检测项。
  2. 如果在内网,先确认是不是链路延迟拖慢了整体速度。
  3. 适当调整 --rate-limit,别设太低,也别为了快把目标打挂。

Q3: 为什么有些明显的漏洞扫不出来?

A: 常见原因就这几类:

  1. 漏洞在深层逻辑里,需要特定参数或登录态,单纯主动扫很难碰到;这时被动扫描通常更有用。
  2. 目标有 WAF,探测 Payload 被拦了。
  3. 这是逻辑漏洞,不是通用扫描器擅长的类型。

Q4: 可以直接用在生产环境吗?

A: 可以用,但得收着点。即使 Payload 本身不算激进,高并发扫描也可能让服务抖一下。更稳妥的做法是先在测试环境验证,生产环境把 --rate-limit 控住,最好避开业务高峰期。

目录

  1. Xray Web 漏洞扫描器
  2. 环境准备与安装
  3. 下载与运行
  4. 核心工作模式
  5. 命令实战
  6. 被动扫描:最适合先上手
  7. Windows
  8. Linux / macOS
  9. 主动扫描:快速摸底
  10. 扫描单个 URL
  11. 只跑部分插件,速度更快
  12. 提高爬虫深度
  13. 和 Burp Suite 联动
  14. 自定义配置和高级参数
  15. 使用自定义配置文件
  16. 输出 JSON,方便接 CI/CD 或其他自动化流程
  17. 限制扫描速率,避免把目标压得太狠
  18. 自定义 POC 和联动工具
  19. 写一个自定义 POC
  20. 或者把 poc 放进 plugins 目录,让它默认加载
  21. 搭配 Radium
  22. 使用 Radium 爬取链接并保存
  23. 批量交给 Xray 扫描
  24. 报告怎么看,误报怎么处理
  25. 常见问题

更多推荐文章

查看全部
  • React Native HarmonyOS react-native-webview 集成指南
  • 命令行大模型交互工具:MCPHost 实战指南
  • 前端 SSG:静态站点生成实战与架构选择
  • Go、Rust、Kotlin、Python 与 Java 五大主流语言性能与生态对比
  • Windows 安装 Docker 详细教程
  • MySQL ON DUPLICATE KEY UPDATE 实现存在更新不存在插入
  • 算法进阶:前缀和原理与实战应用
  • DevEco Studio 同步云函数与云数据库至本地工程
  • 大语言模型训练指南:架构、微调与超参数详解
  • C++ 二叉搜索树实现与原理详解
  • JSP、MVC、EL、JSTL 核心技术笔记
  • 几种主流词嵌入技术详解
  • HTML5 结合 AI 实现智能前端场景渲染
  • Linux 信号捕捉原理与实现
  • Rokid 手势识别技术深度解析:解锁 AR 无接触交互的核心秘密
  • C++ 进阶笔记:引用、重载与内存管理
  • 深度解析:利用文档图像大模型增强智能文档处理效能
  • 前端表格性能优化:虚拟滚动实现百万级数据流畅渲染
  • Azure AI Agent 实战落地:文件读取与总结自动化
  • Qwen3.5-4B 微调实战:基于 LLaMA-Factory 构建医疗 AI 助手

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online