Xray是长亭科技推出的,最经典的莫过于代理模式下的被动扫描,它使得整个过程可控且更加精细化;
代理模式下的基本架构为,扫描器作为中间人,首先原样转发流量,并返回服务器响应给浏览器等客户端,通讯两端都认为自己直接与对方对话,同时记录该流量,然后修改参数并重新发送请求进行扫描。
一般在实际测试中,除了需要手工在burp抓包改包之外,有时候可以配置一个多层代理,让请求包的数据从 Burp 转发到 xray 中,让xray协助进行检测,提高挖洞效率
方法如下:
1.先打开xray 建立webscan 的监听,这里监听本地的8888端口
.\xray_windows_amd64_c2.exe webscan --listen 127.0.0.1:8888 --html-output 123.html
注意:这一步可能需要配置一下xray的配置文件config.yaml,设置允许所有地址访问
# 被动代理配置 # 更多解释见 https://docs.xray.cool/#/configration/mitm mitm: ca_cert: ./ca.crt # CA 根证书路径 ca_key: ./ca.key # CA 私钥路径 basic_auth: # 基础认证的用户名密码 username: "" password: "" allow_ip_range: [] # 允许的 ip,可以是 ip 或者 cidr 字符串 restriction: # 代理能够访问的资源限制, 以下各项为空表示不限制 hostname_allowed: - '*' # 允许访问的 Hostname,支持格式如 t.com、*.t.com、1.1.1.1、1.1.1.1/24
2.打开 Burp ,在User options(用户选项)找到 Upstream Proxy Servers
(顶级代理服务器)设置。添加上游代理以及作用域,根据提示,目标host处可不填或者全部使用*,支持通配符(*表示0个或者任意个字符,?表示除点号之外的任意一个字符)。
代理主机地址填写上一步 xray 的监听地址:127.0.0.1和监听端口:8888,验证类型根据需要,一般选择无即可。
3.最后在本地打开全局代理或者在浏览器端设置http代理地址为 Burp 的代理地址:127.0.0.1:8080
4.然后打开浏览器,正常进行访问抓包,发现流量已经通过 Burp后,并转发到了xray中。
整个流量的方向为:客户端请求的数据包<--->浏览器(浏览器代理为设置Burp的监听代理端口)<--->顶级代理服务器(也叫上游代理,本例填的是xray的监听地址和端口)<--->目标网站;服务器端返回的响应包的流向则刚好相反,其实就是在客户端配置形成一个代理链,实现多层代理
最后:其实可以配置多个顶级代理服务器,Burp会按顺序将请求的主机与Destination host中设置的内容进行比较,并将请求内容发送至第一个相匹配的Proxy server。