头图:https://cdn.naraku.cn/imgs/xray-0.jpg
安装
Xray是一款功能强大的安全评估工具,支持常见Web漏洞的自动化监测,可以在Github免费下载。且Xray为单文件命令行工具,自带所有依赖,解压即可使用无需安装。
- 下载地址:https://github.com/chaitin/xray/releases
- 文档地址:https://xray.cool/xray/#/
这里将解压出来的
xray_windows_amd64.exe
重命名为xray.exe
,并添加进环境变量,方便调用。测试一下
目前支持的漏洞检测类型包括:
- XSS漏洞检测 (key: xss)
- SQL 注入检测 (key: sqldet)
- 命令/代码注入检测 (key: cmd_injection)
- 目录枚举 (key: dirscan)
- 路径穿越检测 (key: path_traversal)
- XML 实体注入检测 (key: xxe)
- 文件上传检测 (key: upload)
- 弱口令检测 (key: brute_force)
- jsonp 检测 (key: jsonp)
- ssrf 检测 (key: ssrf)
- 基线检查 (key: baseline)
- 任意跳转检测 (key: redirect)
- CRLF 注入 (key: crlf_injection)
- Struts2 系列漏洞检测 (高级版,key: struts)
- Thinkphp系列漏洞检测 (高级版,key: thinkphp)
-
基本用法
测试站点:http://testphp.vulnweb.com
基础爬虫模式
xray webscan --basic-crawler http://testphp.vulnweb.com/
结果输出
默认:控制台输出
--json-output
:JSON文件输出--html-output-
:HTML报告输出--webhook-output
:Webhook输出xray webscan --basic-crawler http://testphp.vulnweb.com/ --text-output vulnweb.txt
被动代理模式
官方文档:代理模式
安装浏览器代理插件。如
SwitchyOmega
、FoxyProxy
启动xray,生成CA证书。运行以下命令,将在当前文件夹生成
ca.crt
和ca.key
两个文件$ xray genca
安装并信任生成证书,
Chrome
、IE
等浏览器可以直接双击生成的ca.crt
证书文件,导入系统证书即可
x> 而Firefox拥有自己的证书系统,不信任系统证书,因此需要另一种方法导入证书
x> 第一次启动Xray,会在当前目录下生成配置文件。若配置被动代理模式,需要增加过滤,只扫描指定目标站点,避免扫描到未授权站点。
过滤站点:打开配置文件
config.yaml
,搜索mitm:
,将restriction
中includes
由*
改为 目标站点,如testphp.vulnweb.com
mitm:
...
restriction:
includes:
- "testphp.vulnweb.com"
启动Xray代理
xray webscan --listen 127.0.0.1:6666 --html-output proxy.html
配置浏览器开始扫描
常用配置
指定扫描域
mitm->restriction
mitm->auth
配置认证:
mitm:
...
auth:
username: "naraku"
password: "123456"
...
然后重新开启扫描:
xray webscan --listen 127.0.0.1:6666 --html-output output.html
插件配置
plugins
- 直接在配置文件中将
plugins
配置项下插件enable
修改为false
,即可禁用对应插件 命令行中使用
--plugins
参数,可以选择仅启用部分插件,英文逗号分割xray webscan --listen 127.0.0.1:8081 --plugins xss,xxe
官方文档:插件配置
SQL注入检测 (sqldet): 支持报错注入、布尔注入和时间盲注等
XSS检测(xss): 支持扫描反射型、存储型 XSS
命令/代码注入检测(cmd_injection): 支持 shell 命令注入、PHP 代码执行、模板注入等
目录枚举 (key: dirscan): 检测备份文件、临时文件、debug 页面、配置文件等10余类敏感路径和文件
路径穿越检测( path_traversal): 支持常见平台和编码
XML 实体注入检测(xxe): 支持有回显和反连平台检测
POC 管理( phantasm): 默认内置部分常用的 POC,用户可以根据需要自行构建 POC 并运行。可参考:POC 编写文档(https://chaitin.github.io/xray/#/guide/poc)
文件上传检测(upload): 支持检测常见的后端服务器语言的上传漏洞
弱口令检测(brute_force): 支持检测 HTTP 基础认证和简易表单弱口令,内置常见用户名和密码字典
JSONP检测(jsonp): 检测包含敏感信息可以被跨域读取的 jsonp 接口
SSRF检测(ssrf): ssrf 检测模块,支持常见的绕过技术和反连平台检测
基线检查 (baseline): 检测低 SSL 版本、缺失的或错误添加的 http 头等
任意跳转检测(redirect): 支持 HTML meta 跳转、30x 跳转等
CRLF注入(crlf_injection): 检测 HTTP 头注入,支持 query、body 等位置的参数
发包速率
http->max_qps
http:
...
max_qps: 10 # 每秒最大请求数
...
扫描代理
http->proxy
http:
proxy: "http://ip:port" # 漏洞扫描时使用的代理
高级用法
Burp&Xray
官方文档:使用 Burp 与 xray 进行联动
Burp作Xray上游
i> 访问过程:浏览器 > Xray > Burp > 服务器
配置Xray上游代理,即修改配置文件中的扫描代理为Burp的监听端口
http:
proxy: "http://127.0.0.1:8080" # 漏洞扫描时使用的代理
在浏览器配置监听Xray代理端口,如
127.0.0.1:6666
启用Xray
xray webscan --listen 127.0.0.1:6666 --plugins xss
Xray作Burp上游
i> 访问过程:浏览器 > Burp > Xray > 服务器
经过Burp放行的包,才交由Xray进行扫描,否则直接在Burp处丢弃在
Burp
中配置监听Xray代理端口,如127.0.0.1:6666
- 浏览器端配置为
Burp
监听端口,如127.0.0.1:8080
- 启用Xray
xray webscan --listen 127.0.0.1:6666
自动告警
官方文档:对接 xray 和微信实现自动告警