文章涉及操作均为测试环境,未授权时切勿对真实业务系统进行测试!
下载与解压
- 官网地址:
Xray GitHub Releases- 根据系统选择对应版本:
- Windows:
xray_windows_amd64.exe.zip
- Linux:
xray_linux_amd64.zip
- macOS:
xray_darwin_amd64.zip
- Windows:
- 解压后得到可执行文件(如
xray_linux_amd64
).
- 根据系统选择对应版本:
生成CA证书(HTTPS扫描必备)
./xray genca
生成 ca.crt
和 ca.key
,需导入浏览器信任(以Firefox为例):
- 浏览器设置 → 隐私与安全 → 证书 → 导入
ca.crt
→ 勾选“信任此CA”.
代理模式(被动扫描)
xray.exe webscan --listen 127.0.0.1:7777 --html-output result.html
- 浏览器设置代理(如Chrome使用SwitchyOmega插件):
- 代理地址:
127.0.0.1:7777
- 代理地址:
- 手动浏览目标站点,Xray自动分析流量并检测漏洞.
可以配置只扫描某个域名,以防止对其他域名扫描
添加自定义POC扫描
xray.exe webscan --list
查看全部
默认启动是 819 个 poc
修改 config.yaml 文件配置,自动包含自定义 poc,自定义 poc 必须以“poc-”为命名前缀
自定义 poc 放到 xray 根目录即可
自定义添加了 1 个 poc,加载时变为 820 个
测试 poc
POC 编写
name: poc-yaml-robots
transport: http
rules:
r1:
request:
method: GET
path: /robots.txt
expression: response.status == 200
expression: r1()
detail:
author: name
links:
- http://example.com
name:脚本名称
transport: http 该字段用指定协议发送,协议可以是 tcp、udp、http
rules 标识一个规则集
r1 是规则名称
request 里面是请求相关信息,包括请求方法、路径、请求头、请求体
cache 是否使用缓存,true 标识对相同目标再次发送请求会使用缓存
method 为请求方法
path:如果是以/开头,则直接拼接到 dir 路径,例如目标是 http://example.com/dir/a,path:“/b”,那么请求 url 会变成 http://example.com/dir/b
如果是以 ^ 开头,uri 直接取该路径,如果 path: “^{{inputPath}}/b”,那么请求 url 变为 http://example.com/dir/a/b,{{inputPath}}就是/dir/a。
测试编写的 poc 效果
编辑 xray 配置文件配置代理到 burp 监听的地址 127.0.0.1:8080
方便测试用 python 起个服务,建个 robots 文件