Xray 实战使用指南:自动化漏洞扫描技巧与避坑
前言
Xray 是长亭科技推出的 Web 漏洞扫描器,在挖漏洞、内网安全评估、渗透测试中使用频率极高。很多新手拿到 Xray 只会简单跑一条爬虫命令,经常遇到 WAF 拦截、大量误报、扫到非授权站点、爬虫死循环、业务被压垮等问题。
本文从主动扫描、被动代理扫描、Cookie 登录态扫描、Burp 联动、Rad 爬虫联动、批量目标扫描等实战场景出发,梳理自动化扫描的实用技巧,同时总结大量踩坑经验、误报验证方法、扫描限速策略。
重要免责声明:本文所有操作仅用于自己搭建的靶场、拥有书面授权的安全测试。严禁对未授权网站、公网业务进行扫描,违规扫描触犯《网络安全法》,需承担法律责任。
一、Xray 基础概念与三种扫描模式
Xray 主要分为三大扫描模式:
- 主动爬虫扫描(basic-crawler):Xray 内置爬虫自动爬取页面链接,自动发包检测漏洞,适合快速对站点进行整体摸底。优点全自动;缺点:对 SPA 单页、JS 渲染页面抓取效果差,容易触发 WAF。
- 被动代理扫描(listen 代理模式):Xray 开启代理端口,浏览器 / Burp 的流量经过 Xray 转发,Xray 复制流量并插入 payload 检测漏洞。实战推荐,可以拿到登录态、POST 请求、JS 接口,覆盖爬虫爬不到的接口。
- 单 URL 扫描(–url):只扫描指定的单个请求,不爬链接,适合对单点接口、Payload 验证,用于漏洞复现。
支持漏洞:SQL 注入、XSS 跨站、命令注入、文件上传、路径遍历、CVE 系列 POC(Spring、Shiro、Fastjson 等)。
前置准备:初始化配置文件与 CA 证书
第一次运行 Xray,执行命令生成config.yml配置文件:
# Linux/Mac ./xray_linux_amd64 webscan --init # Windows xray_windows_amd64.exe webscan --initHTTPS 被动扫描必须生成并导入 CA 证书,否则无法抓取 https 流量,直接报证书错误。
./xray_linux_amd64 genca生成 ca.crt 证书,双击导入浏览器,安装到受信任的根证书颁发机构。
二、三大模式实战命令
2.1 主动爬虫扫描(全自动站点摸底)
# 基础爬虫扫描,输出html报告 ./xray_linux_amd64 webscan --basic-crawler http://testphp.vulnweb.com --html-output crawl_report.html常用进阶参数:
# 指定插件,只扫描SQL注入和命令注入,减少发包、提速 ./xray_linux_amd64 webscan --basic-crawler http://testphp.vulnweb.com --plugins sqldet,cmd-injection --html-output fast_scan.html # 限制爬虫深度,防止无限爬取分页 ./xray_linux_amd64 webscan --basic-crawler http://testphp.vulnweb.com --max-depth 4 --html-output depth4.html # 限制单Host每秒请求,保护业务不被打崩 ./xray_linux_amd64 webscan --basic-crawler http://testphp.vulnweb.com --host-rps 10 --html-output rate_limit.html--max-depth:爬虫深度,默认较浅;生产环境不要设置过大。--host-rps:单目标每秒发包数量,生产环境建议 5~20,避免压垮业务。
2.2 被动代理扫描(实战首选,捕获登录态接口)
# 监听7777端口作为代理 ./xray_linux_amd64 webscan --listen 127.0.0.1:7777 --html-output proxy_scan.html浏览器代理配置:HTTP/HTTPS 代理127.0.0.1:7777,安装 SwitchyOmega 插件一键切换代理。
访问网站的所有请求都会经过 Xray,Xray 复制流量自动做漏洞检测。
优势:登录后的 Cookie、POST 表单、AJAX 接口、需要前端交互的页面,爬虫抓不到,但人工访问可以捕获。
配置文件限制扫描范围(非常重要!)
打开config.yml,找到 mitm.restriction,填写允许扫描的域名,防止代理模式下不小心扫描第三方站点:
mitm: restriction: hostname_allowed: - testphp.vulnweb.com - 192.168.172.0/24不在白名单内的域名,Xray 不会进行漏洞探测,避免越权扫描。
2.3 单 URL 扫描(单点漏洞验证)
适合拿到接口后单独测试,不会爬取其他链接:
./xray_linux_amd64 webscan --url "http://testphp.vulnweb.com/listproducts.php?cat=1" --html-output single_url.html三、高级自动化技巧
3.1 登录态扫描两种方案
- 被动代理方案(推荐):浏览器登录系统,保持代理开启,此时 Xray 捕获的流量自带 Cookie,直接扫描已登录接口。
- 配置文件写入 Cookie,用于爬虫主动扫描
修改 config.yml,在 http.headers 添加 Cookie:
http: headers: Cookie: PHPSESSID=xxxx;token=abc123爬虫发起请求会自动带上 Cookie,直接扫描需要登录的页面。
3.2 Burp Suite 联动 Xray(手工渗透 + 自动化漏扫结合)
场景:Burp 手工抓包测试,同时把全部流量转发到 Xray 自动扫描。
- 启动 Xray 被动监听
./xray_linux_amd64 webscan --listen 127.0.0.1:7777 --html-output burp_xray.html- Burp -> Settings -> Upstream Proxy Servers,添加上游代理:
- Destination host:
* - Proxy host:
127.0.0.1,端口7777
- 浏览器代理指向 Burp(默认 8080)
流量流向:浏览器 → Burp → Xray → 目标服务器。Burp 手工测试的所有请求,Xray 同步进行漏洞检测,一边挖一边自动扫描。
3.3 Rad 爬虫联动 Xray,解决 JS 渲染页面爬虫弱的问题
Xray 自带爬虫对 SPA、Vue/React 前端渲染页面抓取能力有限,长亭开源的 Rad 爬虫可以爬取 JS 渲染页面,导出请求包,交给 Xray 批量扫描。
# rad爬取站点,输出request.txt rad http://testphp.vulnweb.com -o req.txt # xray批量读取请求文件扫描 ./xray_linux_amd64 webscan --requests req.txt --html-output rad_xray.html3.4 批量多目标扫描
准备 target.txt,每行一个 URL,使用--url-file批量扫描
./xray_linux_amd64 webscan --url-file target.txt --host-rps 10 --html-output batch_scan.html3.5 自定义 POC / 加载第三方 POC
# 只加载指定poc文件夹下的POC进行扫描 ./xray_linux_amd64 webscan --url http://testphp.vulnweb.com --poc ./mypoc/四、报告解读与误报验证(实战核心)
Xray 报告中,高风险漏洞不能直接采信,必须人工复现验证,工具存在一定误报。
打开 html 报告,查看漏洞详情:
- 请求包 Request:Xray 发送的 Payload;
- Response 响应包:重点看响应中 Payload 回显、报错信息;
- 漏洞等级:高危 / 中危 / 低危 / 信息提示。
常见误报场景
- SQL 注入误报:WAF 返回固定拦截页面、页面动态随机字符串,Xray 误识别为注入;
- XSS 误报:页面转义输出,payload 没有实际执行;
- 路径遍历:页面返回统一 404,工具误判;
验证方法:复制 Payload,在 Burp 手动发包,观察是否能真正触发漏洞;如果无法复现,标记为误报,可在配置文件黑名单添加域名 / 路径特征过滤。
五、高频避坑指南(新手踩坑汇总)
❌ 坑 1:直接在生产业务无限制全速扫描
Xray 发包速度快,默认并发很高,高并发会把业务打挂,触发 WAF 拉黑 IP。
✅ 解决方案:--host-rps限制每秒请求,业务低峰期扫描,内网优先,生产谨慎。
❌ 坑 2:被动代理没有配置 hostname_allowed 白名单,不小心扫描第三方 CDN、广告域名
访问页面时附带第三方 js、埋点域名,Xray 默认会全部扫描,造成越权扫描。
✅ 必须在 config.yml 配置 mitm 白名单,只允许目标业务域名。
❌ 坑 3:HTTPS 被动扫描,没有导入 CA 证书,浏览器证书报错,抓不到 https 流量
✅ 执行 genca 生成证书,导入浏览器根证书。
❌ 坑 4:爬虫扫描登录系统,不带 Cookie,只能扫未登录页面,后台接口全部漏报
✅ 爬虫模式需要在 config.yml 写入 Cookie;被动代理直接浏览器登录,自动携带会话。
❌ 坑 5:被 WAF 拦截,大量请求 403,扫描结果不全
WAF 识别 Xray 的 payload 特征直接拦截。
✅ 策略:降低发包速率;更换代理池;拆分 payload;优先被动代理,减少主动探测;加入 Header 模拟浏览器 UA。
❌ 坑 6:爬虫无限递归爬分页,页面存在?page=1&page=2这类循环参数,扫描永远跑不完
✅ 设置--max-depth限制爬虫深度;在配置文件添加黑名单过滤分页参数。
❌ 坑 7:扫描单页应用 Vue/React,爬虫抓取链接极少,漏报大量接口
✅ Xray 内置爬虫不擅长 JS 渲染,改用 Rad 爬虫联动。
❌ 坑 8:拿到高危漏洞报告直接写进渗透报告,不人工验证,提交一堆误报
工具扫描结果只能作为漏洞线索,不能直接当作真实漏洞。所有高危漏洞必须人工复现确认。
❌ 坑 9:公网随意跑 Xray 扫描
未授权扫描属于违法行为,即使只是测试,也会触发运营商、网站的安全告警。仅限靶场、授权测试。
六、实战扫描流程推荐(标准测试链路)
- 拿到授权,梳理目标域名 / IP,确定扫描范围;
- 配置 Xray config.yml,填写 mitm 域名白名单;
- 优先被动代理模式:浏览器登录业务,手动访问所有菜单,捕获接口流量,Xray 后台自动扫描;
- 补充 Rad 爬虫抓取前端 JS 渲染页面,导出请求批量扫描;
- 爬虫主动扫描,摸底全站静态链接;
- 扫描完成,打开 HTML 报告,逐个人工验证高危漏洞,剔除误报;
- 整理验证成功漏洞,编写正式安全报告。
七、学习建议
- 优先在 DVWA、Pikachu、WebGoat 靶场练习,不要直接拿公网网站练手;
- 分清主动爬虫和被动代理的适用场景,日常渗透优先被动扫描;
- 不要依赖工具一键出漏洞,Xray 是线索收集器,人工验证才是核心;
- 熟悉配置文件,掌握域名白名单、请求头、Cookie、限速等调优参数;
- 学会联动 Burp、Rad,组合使用弥补单一工具短板。
总结
Xray 的核心优势在于自动化漏洞探测、被动代理捕获登录态接口、丰富的 POC 插件。但它不是一键挖漏洞神器,使用不当会造成业务瘫痪、越权扫描、大量误报。
实战最佳组合:被动代理抓流量 + Rad 爬虫补全 JS 接口 + 人工复现验证。合理配置白名单、限制发包速率、严格控制扫描范围,才能安全高效地完成 Web 安全评估。
一句话记住:Xray 用来找线索,人工验证决定漏洞真假,授权是扫描的前提。
以上就是今天的分享,觉得有帮助,记得点赞+收藏,以上所说到的漏洞扫描工具都整理成压缩包了,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
同时还为准备学习网络安全(黑客)或者正在学习,整理了一套360独家内部资料,包含以下内容,如有需要也可文末获取:
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
一、网络安全(黑客)学习路线
网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网络安全教程视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
三、网络安全CTF实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
四、网络安全面试题
最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。
网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】