概述
xray是一款功能强大的安全评估工具,支持主动、被动多中扫描方式,支持常见web漏洞的自动化测试,可以灵活定义POC,功能丰富,调用简单,支持多种操作系统
![图片[1]-Xray简单使用-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2022/09/d2b5ca33bd212412.png)
官网:http://docs.xray.cool
xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有:
- 检测速度快。发包速度快; 漏洞检测算法效率高。
- 支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。
- 代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。
- 高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以客制化功能。
- 安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为无害化检查。
目前支持的漏洞检测类型包括:
- 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)
- POC 框架 (key: phantasm)
其中 POC 框架默认内置 Github 上贡献的 poc,用户也可以根据需要自行构建 poc 并运行。
设计理念
- 发最少的包做效果最好的探测。如果一个请求可以确信漏洞存在,那就发一个请求。如果两种漏洞环境可以用同一个 payload 探测出来,那就 不要拆成两个。
- 允许一定程度上的误报来换取扫描速度的提升漏洞检测工具无法面面俱到,在漏报和误报的选择上必然要选择误报。如果在使用中发现误报比较严重,可以进行反馈。
- 尽量不用时间盲注等机制检测漏洞。时间检测受影响因素太多且不可控,而且可能会影响其他插件的运行。因此除非必要(如 sql)请尽量使用与时间无关的 payload。
- 尽量不使用盲打平台如果一个漏洞能用回显检测就用回显检测,因为盲打平台增加了漏洞检测过程的不确定性和复杂性。
- 耗时操作谨慎处理全局使用 Context 做管理,不会因为某个请求而导致全局卡死。
简易架构
了解 xray 的整体架构可以更好的理解 cli 和配置文件的设置,方便大家更好的使用。
整体来看,扫描器这类工具大致都是由三部分组成:
- 来源处理
- 漏洞检测
- 结果输出
来源处理
这一部分的功能是整个漏洞检测的入口,在 xray 中我们定义了 5 个入口,分别是
- HTTP 被动代理
- 简易爬虫
- 单个 URL
- URL列表的文件
- 单个原始 HTTP 请求文件
漏洞检测
这一部分是引擎的核心功能,用于处理前面 来源处理 部分产生的标准化的请求。用户可以针对性的启用插件,配置扫描插件的参数,配置 HTTP 相关参数等。
结果输出
漏洞扫描和运行时的状态统称为结果输出,xray 定义了如下几种输出方式:
- Stdout (屏幕输出, 默认开启)
- JSON 文件输出
- HTML 报告输出
- Webhook 输出
在使用 xray 的过程中只要谨记这三个部分,所有的命令行用法就看起来很简单了。 接下来就让我们上路吧。
下载运行
xray 为单文件二进制文件,无依赖,也无需安装,下载后直接使用。
下载地址
请下载的时候选择最新的版本下载。
- Github: http://github.com/chaitin/xray/releases (国外速度快)
- 网盘: http://yunpan.360.cn/surl_y3Gu6cugi8u (国内速度快)
注意: 不要直接 clone 仓库,xray 并不开源,仓库内不含源代码,直接下载构建的二进制文件即可。
xray 跨平台支持,请下载时选择需要的版本下载。Windows
windows_amd64Windows x64windows_386Windows x86
系统版本要求大于等于 Windows 7 或大于等于 Windows Server 2008 R2, 不支持 Windows XP、Windows 2003 等低版本系统。
对于 release 中的其他文件,说明如下:
sha256.txt校验文件,内含个版本的 sha256 的哈希值,请下载后自行校验以防被劫持投毒。Source CodeGithub 自动打包的,无意义,请忽略。
运行
下载对应系统的版本后,来查看下 xray 的版本号。Windows
以下载到 C:\Users\$User\Downloads 为例,右键解压,就可以得到 xray_windows_amd64.exe 文件了(有的解压软件还会创建一个 xray_windows_amd64.exe 的文件夹,不要和最终的可执行文件混淆了)。
![图片[2]-Xray简单使用-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2022/09/d2b5ca33bd212629.png)
使用桌面左下方的的搜索框,输入 PowerShell,点击 Windows PowerShell,进入命令终端。
然后 cd 到下载目录,运行 .\xray_windows_amd64.exe version 即可查看 xray 的版本号。
![图片[3]-Xray简单使用-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2022/09/d2b5ca33bd212645.png)
快速使用
在使用之前,请务必阅读并同意 License 文件中的条款,否则请勿安装使用本工具。
使用基础爬虫爬取并对爬虫爬取的链接进行漏洞扫描
xray webscan --basic-crawler http://example.com --html-output vuln.html
使用 HTTP 代理进行被动扫描
xray webscan --listen 127.0.0.1:7777 --html-output proxy.html
设置浏览器 http 代理为 http://127.0.0.1:7777,就可以自动分析代理流量并扫描。
只扫描单个 url,不使用爬虫
xray webscan --url http://example.com/?a=b --html-output single-url.html
手动指定本次运行的插件默认情况下,将会启用所有内置插件,可以使用下列命令指定本次扫描启用的插件。
xray webscan --plugins cmd-injection,sqldet --url http://example.com xray webscan --plugins cmd-injection,sqldet --listen 127.0.0.1:7777
指定插件输出可以指定将本次扫描的漏洞信息输出到某个文件中:
xray webscan --url http://example.com/?a=b \ --text-output result.txt --json-output result.json --html-output report.html报告样例
其他用法请阅读文档: http://docs.xray.cool










请登录后查看评论内容