0x00 前言
在漏洞挖掘中除了手动挖掘,一般都是用一些扫描器开辅助我们去进行测试,比如AWVS,APPSCAN,netsparker等等。今天给大家介绍一款被动扫描的扫描漏洞的神器——Xray,这款工具我自己用过了,的确挺好用,还能让burpsuite作为下游代理,不耽误测试。
0x01 xray简介
xray是从长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器,支持主动、被动多种扫描方式,自备盲打平台、可以灵活定义 POC,功能丰富,调用简单,支持Windows /macOS / Linux 多种操作系统,可以满足广大安全从业者的自动化 Web 漏洞探测需求。
下载地址:传送门
官网地址:传送门
github地址:传送门
可检测漏洞模块
XSS漏洞检测 (key: xss)
利用语义分析的方式检测XSS漏洞
SQL 注入检测 (key: sqldet)
支持报错注入、布尔注入和时间盲注等
命令/代码注入检测 (key: cmd_injection)
支持 shell 命令注入、PHP 代码执行、模板注入等
目录枚举 (key: dirscan)
检测备份文件、临时文件、debug 页面、配置文件等10余类敏感路径和文件
路径穿越检测 (key: path_traversal)
支持常见平台和编码
XML 实体注入检测 (key: xxe)
支持有回显和反连平台检测
poc 管理 (key: phantasm)
默认内置部分常用的 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 等位置的参数
..
0x02 快速使用
官网演示:
使用基础爬虫爬取并对爬虫爬取的链接进行漏洞扫描
1
xray webscan --basic-crawler http://example.com --html-output vuln.html
不指定输出时,默认输出到控制台的标准输出中,不同参数对应不同的输出方式:
1
2
3
4#无参数:输出到控制台的标准输出
--`text-output`:输出到文本文件中
--`json-output`:输出到 JSON 文件中
--`html-output`:输出到 HTML 文件中使用HTTP代理进行被动扫描
1
xray webscan --listen 127.0.0.1:7777 --html-output proxy.html
设置浏览器http代理为
http://127.0.0.1:7777
,就可以自动分析代理流量并扫描。如需扫描https流量,请阅读下方文档
抓取 https 流量
部分只扫描单个url,不使用爬虫
1
xray webscan --url http://example.com/ ?a = b --html-output single-url.html
手动指定本次运行的插件
默认情况下,将会启用所有内置插件,可以使用下列命令指定本次扫描启用的插件。
1
2xray webscan --plugins cmd_injection,sqldet --url http://example.com
xray webscan --plugins cmd_injection,sqldet --listen 127.0.0.1:7777指定插件输出
可以指定将本次扫描的漏洞信息输出到某个文件中:
1
2xray webscan --url http://example.com/ ?a = b
--text-output result.txt --json-output result.json --html-output report.html运行只单个内置 POC
在xray中,所有的pocdency属于插件
phantasm
,所以使用poc时需要开启phantasm
插件才可生效。--poc
参数指定本次运行的poc,如不指定,将运行所有的内置poc。1
xray webscan --plugins phantasm --poc poc-yaml-thinkphp5-controller-rce --url http://example.com/
运行用户自定义POC
用户可以按需书写自己的YAML格式的POC,并通过指定
--poc
参数运行,比如运行在/home/test/1.yaml
处的POC。1
xray webscan --plugins phantasm --poc /home/test/1.yaml --url http://example.com/
--poc
参数非常灵活,支持Glob匹配,支持从目录加载,可以从以下几个例子理解用法:加载
/home/test/pocs/
所有的POC:1
xray webscan --plugins phantasm --poc “ / home / test / pocs / * ”
加载
/home/test/pocs/
下包含thinkphp的POC1
xray webscan --plugins phantasm --poc “ / home / test / pocs / * thinkphp * ”
自定义POC请查看文档。
转发漏洞信息到数据库,邮件,IM通知等
用户可以使用
--webhook-output
将漏洞信息进行转发,后端需要返回状态200才认为发送成功,否则将打印错误日志。1
xray webscan --url http://example.com/ --webhook-output http:// host:port / path
ps:如何是Windows的,需要使用xray***.exe文件
0x03 抓取https流量
3.1 生成证书
和burp类似,抓取https流量需要信任一个根证书,这个根证书可以自行生成,也可用下列自带的命令生成:
1 | xray genca ## Linux |
然后xray文件夹下会产生ca证书和ca.key两个文件
Firefox浏览器没有使用系统的根证书管理器,意味着使用Firefox时需要单独在该浏览内导入证书才可生效。对于移动端等,可以在挂代理之后访问
http://xray/
然后下载根证书。
未安装证书前,提示证书风险,访问https的网站会提示证书风险
3.2 安装证书
3.3 测试
安装好证书后,重启浏览器,再次访问百度,可以看到没有证书不安全的标志了,说明证书安装成功
碰巧还看到了检测出一个漏洞
0x04 使用技巧
4.1 常用命令
虽然在刚刚前面的快速使用中命令有很多种,但是常用的命令就那几个
1 | xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output proxy.html |
浏览器设置本地代理,以360浏览器为例
然后通过浏览器手动点击一些页面,xray会自动对这些页面进行测试,非常好用
4.2 结合burpsuite插件passive scan使用
4.2.1 原理
4.2.2 使用教程
开启xray代理
1 | xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output proxy.html |
开启burpsuite和浏览器代理
开启passive scan client插件
然后,就可以正常的使用burpsuite进行测试,手动测试的流量数据会自动通过代理插件发送到xray扫描器进行被动扫描,既不耽误测试,又不用担心被封IP 等危险。
0x04 参考链接
1、https://www.anquanke.com/post/id/184204
2、https://www.jishuwen.com/d/2TvQ
3、 https://chaitin.github.io/xray
###