xray-webscan使用教程
S3a Lv3

xray-webscan

快速使用

扫描一个站点

最简单的方式是直接调用,扫描一个指定的站点,如:

1
./xray webscan --basic-crawler http://example.com/

这可能是最简单最常用的一个功能,就是太长了,体验不太友好,建议常用的同学可以 alias xray="/path/xray webscan --basic-crawler"

指定扫描输出

不指定输出时,默认输出到控制台的标准输出中,可以做管道处理,也可以选择输出为文件,如:

1
./xray webscan --url http://example.com/ --json-output report.json

不同参数对应不同的输出方式:

  • 无参数:输出到控制台的标准输出
  • --text-output:输出到文本文件中
  • --json-output:输出到 JSON 文件中
  • --html-output:输出到 HTML 文件中

基于代理的被动扫描

xray 可以通过类似 Burp 的方式启动,利用 HTTP 代理来抓包扫描,如:

1
./xray webscan --listen 127.0.0.1:7777

如果运行没报任何错就可以设置浏览器 HTTP 代理为 127.0.0.1:7777 了,关于如何设置浏览器代理,请打开百度搜索 “浏览器设置代理”。

代理设置 OK 以后就可以启动代理扫描了,这时候我们打来浏览器尽情冲浪吧,理论上我们的鼠标点到哪 xray 就能扫到哪。

需要注意一下的是,很多时候还会扫到 HTTPS 站点,可能会因为有代理而导致无法访问,或者需要手动确认安全风险。这时候需要我们导入 xray 运行目录下的 ca.crt 证书,关于如何导入 CA 证书,请打开百度搜索 “安装CA证书”。

1
2
➜   ls
ca.crt ca.key config.yaml xray

高级姿势

指定扫描插件

使用 --plugins 参数可以选择仅启用部分扫描插件,多个插件之间可使用逗号分隔,如:

1
./xray webscan --plugins cmd_injection --url http://example.com/

目前提供的插件列表如下:

  • SQL 注入检测 (key: sqldet)
    支持报错注入、布尔注入和时间盲注等
  • XSS 检测(key: xss)
    支持扫描反射型、存储型 XSS
  • 命令/代码注入检测 (key: cmd_injection)
    支持 shell 命令注入、PHP 代码执行、模板注入等
  • 目录枚举 (key: dirscan)
    检测备份文件、临时文件、debug 页面、配置文件等10余类敏感路径和文件
  • 路径穿越检测 (key: path_traversal)
    支持常见平台和编码
  • XML 实体注入检测 (key: xxe)
    支持有回显和反连平台检测
  • POC 管理 (key: phantasm)
    默认内置部分常用的 POC,用户可以根据需要自行构建 POC 并运行。可参考:POC 编写文档
  • 文件上传检测 (key: upload)
    支持检测常见的后端服务器语言的上传漏洞
  • 弱口令检测 (key: brute_force)
    支持检测 HTTP 基础认证和简易表单弱口令,内置常见用户名和密码字典
  • JSONP 检测 (key: jsonp)
    检测包含敏感信息可以被跨域读取的 jsonp 接口
  • SSRF 检测 (key: ssrf)
    ssrf 检测模块,支持常见的绕过技术和反连平台检测
  • 基线检查 (key: baseline)
    检测低 SSL 版本、缺失的或错误添加的 http 头等
  • 任意跳转检测 (key: redirect)
    支持 HTML meta 跳转、30x 跳转等
  • CRLF 注入 (key: crlf_injection)
    检测 HTTP 头注入,支持 query、body 等位置的参数

只扫描一个 URL

xray 还提供了方便的只扫描一个 URL 的方式,如:

1
./xray webscan --url http://example.com/ --json-output out.json
 Comments
Comment plugin failed to load
Loading comment plugin