Xray是什么?
xray (https://github.com/chaitin/xray) 是从长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器,支持主动、被动多种扫描方式,自备盲打平台、可以灵活定义 POC,功能丰富,调用简单,支持 Windows / macOS / Linux 多种操作系统,可以满足广大安全从业者的自动化 Web 漏洞探测需求。
工具下载:
在公众号回复"xray-pro"获取Xray 1.8.5 Pro
在公众号回复"xray"获取xray社区版
适用人群:
白帽子,挖 SRC 必备,打开浏览器挂上代理,然后上网冲浪等漏洞就对了,还不够的话就把代理给你爸,给你姐,给你妹,给你家猫和狗都挂上代理.
向我这种挖掘漏洞不是很积极的人经常使用xary.
甲方安全建设者.工具在手,天下我有,细粒度配置,高精度扫描,可作为定期巡检、常规扫描的辅助神器
乙方工具开发者。在编写渗透框架或者漏洞扫描框架时,作为扫描探针进行集成,简直是大平台中的小尖刀
快速使用:
🚩【1】扫描网站:
xray webscan --basic-crawler http://www.xxxxx.net/
🚩【2】指定扫描输出文件(文件格式:html,json):
参数:
--json-output #输出为json类型的文件后面跟着文件名称
--html-output #输出为html类型的文件后面跟着文件名称
实例:
xray webscan --url http://www.xxxxx.net/ --html-output urlbg.html
上面这个例子会生成个名为urlbg.html的文件
xray webscan --url http://www.xxxxx.net/ --json-output urlbg.json
上面这个例子会生成个名为urlbg.json的文件
🚩【3】基于代理的被动扫描:
xray 可以通过类似 Burp 的方式启动,利用 HTTP 代理来抓包扫描,如:
xray webscan --listen 127.0.0.1:7777
可以使用插件进行代理,我比较喜欢使用:Proxy&User-Agent Switcher
需要注意一下的是,很多时候还会扫到 HTTPS 站点,可能会因为有代理而导致无法访问,或者需要手动确认安全风险。这时候需要我们导入 xray 运行目录下的ca.crt证书,找到设置搜索证书.然后点击导入证书.找到我们的证书ca.crt.记住存储证书是”受信任的根证书颁发机构“接着点击完成.如果没有证书则可以使用”xray genca“获取ca.crt证书.
🚩【4】指定扫描插件:
目前xray提供的插件列表如下:
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 编写文档(https://chaitin.github.io/xray/#/guide/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 等位置的参数
使用 --plugins
参数可以选择仅启用部分扫描插件,多个插件之间可使用逗号分隔,如:
xray webscan --plugins cmd_injection --url http://www.xxxxx.net/
🚩【5】配置文件
xray 还提供了友好配置文件,可以方便地将常用的命令行参数写到配置文件中,避免了每次都要输入一大串参数的痛苦。
xray 默认会读取运行目录下的 config.yaml 文件作为配置危机,也可以使用 —config 参数指定其他配置文件。
想要了解更多配置,可以查看官方文档.:https://docs.xray.cool/#/README
🚩【6】自定义 POC
xray 支持用户使用 YAML 编写 POC。YAML 是 JSON 的超集,也就是说我们甚至可以用 JSON 编写 POC,但这里还是建议大家使用 YAML 来编写,原因如下:
YAML 格式的 “值” 无需使用双引号包裹,特殊字符无需转义
YAML 格式使内容更加可读
YAML 中可以使用注释
我们可以编写以下的 yaml 来测试 tomcat put 上传任意文件漏洞:
name: poc-yaml-tomcat_put
rules:
- method: PUT
path: /hello.jspbody: world
- method: GET
path: /hello.jsp
search: world
这里还要感谢 phith0n 贡献的 xray PoC 生成器
(https://phith0n.github.io/xray-poc-generation/)
将 POC 保存到 YAML 文件后使用 --poc
参数可以方便地调用,如:
xray webscan --plugins phantasm --poc /home/test/poc.yaml --url http://example.com/
🚩总结🚩:
xray扫描器解放了我的双手.好好学习SRC天天有.
我的公众号.各位大佬们.关注一下.在下感激不尽.