今天来聊聊一款功能强大的漏洞扫描工具 —— xray。本文将带你从零开始,了解其核心特性,并完成下载安装、代理模式配置、目标爬虫扫描以及与 Burp Suite 联动的完整流程。
工具特性
xray 之所以受到广泛关注,主要得益于以下几个特点:
- 检测速度快:拥有高效的发包速度与漏洞检测算法。
- 支持范围广:覆盖 OWASP Top 10 通用漏洞,也支持各种 CMS 框架的 POC 检测。
- 代码质量高:通过严格的 Code Review、单元测试等流程确保可靠性。
- 高级可定制:通过配置文件可以灵活调整引擎的各种参数,定制扫描行为。
- 安全无威胁:定位为安全辅助评估工具,其内置的 Payload 和 POC 均为无害化检查。
下载与安装
xray 支持跨平台运行,你可以根据操作系统从 GitHub 官方仓库下载对应的版本。本文将以 Kali Linux 环境为例进行演示。
- 访问 xray 的发布页面:
https://github.com/chaitin/xray/releases 。
- 选择适合你系统的版本进行下载。例如,对于 Kali Linux(x64 架构),应选择
xray_linux_amd64.zip。

- 下载完成后,使用
unzip 命令解压,即可得到可执行文件 xray_linux_amd64。
- 在终端中运行
./xray_linux_amd64 即可查看工具版本和基本帮助信息,确认安装成功。

使用代理模式进行漏洞扫描
代理模式是 xray 的核心用法之一。其原理是让 xray 作为中间人(MITM),拦截并转发浏览器与目标服务器之间的流量,同时记录并修改参数进行安全测试。这种动态的安全/渗透/逆向测试方式非常高效。
1. 生成 HTTPS 证书
为了能够代理 HTTPS 流量,我们需要先生成并信任一个根证书(类似于 Burp Suite 的操作)。
运行以下命令生成 CA 证书和密钥:
./xray_linux_amd64 genca
执行后,当前目录会生成 ca.crt(证书)和 ca.key(私钥)两个文件。

接下来,在浏览器中导入此证书。以 Kali 默认的 Firefox 浏览器为例:
- 打开
设置 -> 隐私与安全 -> 查看证书。
- 在
证书机构 选项卡中,点击 导入,选择刚生成的 ca.crt 文件。
- 在弹出的对话框中,勾选“信任由此证书颁发机构来标识网站”,然后确定。


2. 配置并启动代理
首次运行 xray 后,会在当前目录生成一个默认的 config.yaml 配置文件。我们需要编辑它以限制扫描范围,避免误扫。
用文本编辑器打开 config.yaml,找到 mitm 部分的 restriction 设置,在 hostname_allowed 列表中添加你的目标域名(例如 bbskali.cn),这样 xray 就只会扫描该域名的流量。
mitm:
restriction:
hostname_allowed: [bbskali.cn] # 允许访问的 Hostname

3. 配置浏览器代理
将浏览器的 HTTP/HTTPS 代理设置为 xray 的监听地址和端口(例如 127.0.0.1:7777)。

4. 开始扫描
在终端中运行以下命令,启动 xray 的 Web 漏洞扫描监听:
./xray_linux_amd64 webscan --listen 127.0.0.1:7777 --html-output xray-testphp.html
此时,通过浏览器访问目标网站(如 https://bbskali.cn),xray 便会捕获流量并进行漏洞扫描。

扫描结束后,可以查看生成的 HTML 格式报告(本例中为 xray-testphp.html),其中会清晰地列出发现的漏洞。

使用爬虫模式扫描目标
除了代理模式,xray 还支持主动爬虫模式。该模式会主动爬取指定起始 URL 下的所有链接并进行测试。
使用以下命令即可启动针对某个站点的爬虫扫描:
./xray_linux_amd64 webscan --basic-crawler https://bbskali.cn/ --html-output xray-crawler-testphp.html
此模式无需人工浏览,适合对目标站点进行全面的自动化漏洞扫描评估。

与 Burp Suite 联动实战
将 xray 与 Burp Suite 联动,可以结合两者的优势:利用 Burp 进行精细的手动测试,同时让 xray 在后台进行自动化漏洞扫描。
1. 启动 xray 监听
首先,确保 xray 的 Web 扫描监听已经启动(同上一步)。
./xray_linux_amd64 webscan --listen 127.0.0.1:7777 --html-output xray.html

2. 配置 Burp Suite 上游代理
打开 Burp Suite,进入 User options -> Connections -> Upstream Proxy Servers 设置。
点击 Add,添加一条新的上游代理规则:
- Destination host: 设置为你想要通过 xray 扫描的目标,例如
*.bbskali.cn*(支持通配符)。
- Proxy host: 设置为
127.0.0.1。
- Proxy port: 设置为 xray 的监听端口
7777。
- Authentication type: 保持为
None。


配置完成后,所有发往 *.bbskali.cn* 的 Burp 流量都会先经过 xray 进行扫描,然后再转发到目标服务器。这样,你在使用 Burp 进行手动测试的同时,xray 也在后台进行高效的自动化漏洞检测。
通过以上步骤,你应该已经掌握了 xray 的基础用法。它是一款设计精良的工具,合理利用可以极大提升安全评估的效率。如果你对这类运维 & 测试或安全工具的使用技巧感兴趣,欢迎到云栈社区与更多开发者交流探讨。