Xray 简介与核心优势
Xray 是一款高性能 Web 漏洞扫描器。它从企业级产品'洞鉴'中提取核心能力,免费提供给社区使用。
注意: 本教程仅用于授权的安全测试、本地靶场练习或自有系统自查。未经授权扫描他人系统是违法行为。
核心特点
介绍 Xray Web 漏洞扫描器的安装、配置及使用方法。涵盖被动扫描、主动扫描及与 Burp Suite 联动模式,提供常用命令示例。支持自定义 POC 编写,并指导如何解读扫描报告和处理误报。适用于安全研究人员及开发人员,强调合法合规使用。

Xray 是一款高性能 Web 漏洞扫描器。它从企业级产品'洞鉴'中提取核心能力,免费提供给社区使用。
注意: 本教程仅用于授权的安全测试、本地靶场练习或自有系统自查。未经授权扫描他人系统是违法行为。
核心特点
检测范围 覆盖 OWASP Top 10 及常见 CMS 漏洞:SQL 注入、XSS(跨站脚本)、命令/代码注入、SSRF(服务端请求伪造)、XXE(XML 外部实体注入)、目录枚举、路径穿越、文件包含、弱口令、未授权访问、组件版本漏洞。
访问官方 GitHub 仓库下载最新版本:https://github.com/chaitin/xray/releases
xray_windows_amd64.zipxray_linux_amd64.zipxray_macos_amd64.zip (M1/M2 芯片请选 arm64)Xray 无需安装,解压即可运行。
Windows
xray_windows_amd64.exe 或在 CMD/PowerShell 中运行。./xray_windows_amd64.exe genca
按提示将生成的 ca.crt 导入到浏览器和操作系统的'受信任的根证书颁发机构'。
Linux / macOS
unzip xray_linux_amd64.zip
chmod +x xray
./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, Pikacha, Vulhub)或已授权的环境中进行。
场景一:被动扫描(推荐入门) 目标: 拦截浏览器流量,实时检测漏洞。 步骤:
命令演示
# 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 报告。http://your-target.com,随意点击页面、提交表单。扫描完成后,在文件夹中找到 report_passive.html 查看结果。场景二:主动扫描(快速摸底) 目标: 对指定 URL 进行全自动爬虫和漏洞检测。 适用: 已知入口点,希望快速发现表面漏洞。
命令演示
# 基础扫描:扫描单个 URL
./xray webscan --url http://testphp.vulnweb.com/ --html-output report_active.html
# 进阶扫描:指定插件模块(只扫 SQL 注入和 XSS,加快速度)
./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 (SQL 注入), xss, cmd-injection 等。不填则默认全开。--max-depth: 控制爬虫爬取的深度,防止无限爬取。场景三:与 Burp Suite 联动(专家模式) 目标: 利用 Burp 强大的抓包改包能力,结合 Xray 的自动化检测能力。 原理: 浏览器 -> Burp (Proxy) -> Xray (Proxy) -> 目标服务器。
命令演示
./xray webscan --listen 127.0.0.1:7777 --html-output report_burp.html
配置 Burp Suite:
打开 Burp -> Proxy -> Options (或 Proxy Settings)。
找到 Upstream Proxy Servers (上游代理)。
添加规则:匹配所有主机 (.*),指向 127.0.0.1:7777。
配置浏览器:
浏览器代理指向 Burp (通常是 127.0.0.1:8080)。
开始测试:
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
# 限制扫描速率,防止把目标扫挂 (QPS 限制)
./xray webscan --url http://target.com --rate-limit 10 --html-output safe_report.html
当爆发新漏洞(如 Log4j2, Fastjson 新变种)时,官方规则可能未及时更新,你可以自己写。 Xray 使用 YAML 格式编写 POC。
示例:检测一个简单的回显型命令注入
创建文件 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 目录,默认会自动加载
如果 Xray 自带的爬虫不够强,可以先用 Radium 爬取所有链接,再喂给 Xray。
# 使用 Radium 爬取链接并保存
./radium --url http://target.com --output links.txt
# 使用 Xray 批量扫描这些链接 (需配合脚本或 xray 的 stdin 模式)
cat links.txt | xargs -I{} ./xray webscan --url {} --html-output batch_{}.html
扫描完成后,打开生成的 .html 报告:
概览: 查看漏洞总数、风险等级分布(高/中/低/提示)。
详情: 点击具体漏洞,查看:
误报处理:
blacklist 中添加特征,或在自定义 POC 中优化表达式。Q1: 扫描 HTTPS 网站报错或没反应?
A: 必须生成并信任 Xray 的 CA 证书。运行 ./xray genca,然后将生成的 ca.crt 导入操作系统和浏览器的'受信任的根证书颁发机构'。
Q2: 扫描速度太慢怎么办? A:
--plugins 参数只开启需要的检测模块。--rate-limit 参数(适当调大,但别把目标扫崩)。Q3: 为什么有些明显的漏洞扫不出来? A:
Q4: 可以在生产环境直接使用吗? A: 谨慎!虽然 Xray 的 Payload 是无害的,但高并发扫描仍可能导致服务不稳定。务必先在测试环境验证,并在生产环境限制扫描速率(--rate-limit),最好避开业务高峰期。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online