Xray工具详细使用方法(基于macos) 您所在的位置:网站首页 burp顶级代理 Xray工具详细使用方法(基于macos)

Xray工具详细使用方法(基于macos)

2023-05-29 16:20| 来源: 网络整理| 查看: 265

Xray工具详细使用方法(基于macos)

下载地址:https://github.com/chaitin/xray/releases

官方教程:https://docs.xray.cool/#/tutorial/webscan_proxy

1、下载安装

英特尔cpu的mac直接下载xray_darwin_amd64.zip即可

解压后得到这样一个文件

在mac上找一个合适的地方新建名为xray的文件夹,然后把下载了的文件放进去

然后在该文件夹打开终端,运行此文件

1./xray_darwin_amd64

第一次使用它会出现一个报错,只是说需要生成几个文件而已,它会自动生成的,可以看到文件夹里面多了几个文件,我们接着再运行一次,这次我们直接查看版本号

1./xray_darwin_amd64 version

若正常显示版本号,且无报错,说明安装成功

2、基础功能使用

xray最基础的功能有两个。

一个是代理模式,这个其实就是我们可控的扫描,我们在浏览器上访问一个网站的页面,xray就会自动对当前页面进行测试,测试完成后自动暂停,等我们访问别的页面,xray再继续扫描。

一个是爬虫模式,这个其实就是全自动的扫描,我们不可控,就是不需要我们操作浏览器,直接一条命令把待测网址传给xray,然后xray就通过爬虫的方式,对这个网址进行爬虫,将爬取到的所有页面都进行扫描测试,最后生成报告。(注意,此方法看上去很方便,但是实际上精准度不高,会有很多的遗漏或错误,并且由于全自动不可控,故很可能被waf之类的拦截)

1)代理模式安装ca证书

这个是必须要安装的,和burp安装的时候需要ca证书相同,这里根据官方教程,直接把ca证书安装在操作系统上即可

1./xray_darwin_amd64 genca

运行此命令,生成ca证书

可以看到会在文件夹里生成两个文件

然后双击ca.crt就会自动弹出系统证书管理软件

询问是否添加证书,点击添加即可

然后在搜索框搜索x-ray

双击搜索出来的这条记录

将这里的SSL这个选项设为“始终信任”

然后红色提示变为蓝色就说明完成了

为FireFox 浏览器单独设置ca证书

若你的浏览器是chrome之类的,就不需要这一步的操作了,此操作是单独针对 FireFox 浏览器的

如图进入 FireFox 浏览器的设置,“隐私与安全”选项的下面有一个“查看证书”按钮

选择“导入”,然后将刚刚生成的ca.crt文件导入进来即可(注意导入时弹出的确认框需要将两个复选框都钩上)

配置代理

我这里用的 FireFox 浏览器

因为之前配置burp的时候在浏览器上装了这个插件,所以就直接用了,如果没装的自己去下载安装

配置其实很简单,就是新建一个情景模式,我命名为xray,然后可以直接像我图上这样配置,注意代理端口号是可以随意更改的,只要不和电脑上正在用的端口号冲突即可

使用1./xray_darwin_amd64 webscan --listen 127.0.0.1:1112 --html-output xray-testphp.html

如图,使用这个命令即可,注意这里的地址和端口就是我们刚刚在 FireFox 浏览器配置的,必须相同!

接下来,只需要在 FireFox 浏览器上访问你想要扫描的网站即可,xray就会自动在后面对当前访问的页面进行扫描

解释

这里需要解释一下代理模式到底是什么原理

即浏览器所有发送的请求,都经过xray,从xray发到目标服务器,所以xray会获得到请求包,然后对这些请求包进行扫描。

2)爬虫模式

这个模式使用很简单,直接输入一条命令即可

1./xray_darwin_amd64 webscan --basic-crawler http://192.168.31.36 --html-output xray-crawler-testphp.html

解释一下命令后面的参数,带了一个你要扫描的网址,然后指定输出报告到xray-crawler-testphp.html

接下来就坐着等报告了,非常方便无脑,但需要注意,如果遇到js渲染的页面就不能处理

相关配置:

在这里可以配置爬虫的相关信息

用法默认都注释了,这里不再赘述

3、进阶功能1)xray与burp联动介绍

这个功能其实是基于之前讲的基础功能里面的代理模式的进阶

代理模式是有三层关系:浏览器——xray——服务器

而该模式其实就是增加一层关系,把burp放到其中,有两种放法

1⃣️把burp放到浏览器和xray之间变成这样:浏览器——burp——xray——服务器

这样的好处是什么?我们可以修改浏览器请求,让我们的请求更加可控,这样发送到xray的请求就更准确

2⃣️把burp放到xray和服务器之间变成这样:浏览器——xray——burp——服务器

这样的好处是什么?xray测试时发送的所有请求都先被burp拦截住,当然一般情况下xray发送的请求有上千个,我们不可能一个个拦截放行,所以更多的时候用的是burp的history功能,它可以记录所有经过burp的请求,然后我们就可以直接对可疑请求在burp上研究了

使用方法1

1⃣️浏览器——burp——xray——服务器

浏览器上的代理不用xray的了,用burp的代理,因为浏览器的包发到burp的

然后在burp上设置顶级代理,就是让burp将包发送到上层的代理

然后让xray监听1112端口即可

1./xray_darwin_amd64 webscan --listen 127.0.0.1:1112

接下来就浏览器访问要扫描的网站即可

使用方法2

2⃣️浏览器——xray——burp——服务器

在xray的config配置里设置代理,这个代理地址就是burp的代理地址

然后启动xray

1./xray_darwin_amd64 webscan --listen 127.0.0.1:1112

这个端口就是之前我们用代理模式的时候设置的1112

然后浏览器上也设置一下,和之前的代理模式设置的一样

这样就设置完成了

梳理一下整个过程:

浏览器上将请求通过1112端口发送到xray上,因为xray正在监听1112端口,然后xray将请求发送到8080端口,然后burp正在监听8080端口,所以burp就收到了xray的请求

演示

1⃣️浏览器——burp——xray——服务器

可以看到burp的请求都到xray里面了

2⃣️浏览器——xray——burp——服务器

可以看到,xray所有的请求都在burp的history里面显示出来了

2)xray测试DVWA靶场

DVWA靶场的搭建过程这里就不展示了,我是在windows虚拟机里面跑phpstudy搭建的,有问题直接百度解决,如果嫌麻烦,直接用buuctf里面的在线靶场,一键运行(DVWA账户admin密码password)

注:漏洞难度选择low(其他难度自测,这里不做演示)

1.Brute Force爆破漏洞

这里使用的是xray的代理模式,监听1112端口

1./xray_darwin_amd64 webscan --listen 127.0.0.1:1112 --html-output 1.html

然后账户密码随便输一下,点击Login按钮,xray就开始扫描了

可以看到总共有4个漏洞,第一个是暴力破解,验证一下(看不懂漏洞名称可以看下面“4、参数详情-指定漏洞插件”里面写的)

账户admin密码password成功登录

再验证第四个sql注入

存在sql注入

2.Command Injection命令注入漏洞

验证一下cmd-injection漏洞

可以看到得到了正确的计算结果,说明存在命令注入漏洞

3.csrf漏洞

扫描不出来

4.文件包含漏洞

扫描不出来

5.文件上传漏洞

随便选一张图片上传上去

检测出了文件上传漏洞

按它的payload准备一个恶意文件

上传成功

访问成功,说明存在漏洞

6.Insecure CAPTCHA不安全验证机制漏洞

扫描不出来

7.SQL注入漏洞

验证一下

确实存在sql注入

8.sql注入漏洞(盲注)

扫不出来

9.DOM型XSS漏洞

验证一下

因为这里没有输入框只有选择框,但它是get请求,所以直接改在url里面即可

漏洞存在

10.反射型XSS漏洞

利用成功

11.存储型XSS漏洞

利用成功

3)xray与crawlergo联动

xray的爬虫模式是先通过我们提供的一个域名进行爬虫,爬取这个域名下面的其他URL,然后对这些URL进行扫描。xray的强项不是爬虫,所以如果我们利用更强大的爬虫工具为xray提供更多的URL,那么扫描到的漏洞也会更多,所以我们引入crawlergo这个工具

关于这个工具的安装和使用,可以参考我的这篇文章:xxxxxxxxxx

联动:

启动xray进行监听:

1./xray_darwin_amd64 webscan --listen 127.0.0.1:1112 --html-output xray-testphp.html

启动crawlergo爬取URL:

1./crawlergo_darwin_amd64 -c /Applications/Chromium.app/Contents/MacOS/Chromium -t 10 --push-to-proxy http://127.0.0.1:1112 http://testphp.vulnweb.com/

这样设置后,crawlergo爬取到的url就会发送到xray上了

4)xray与rad联动

rad其实和crawlergo的作用是一样的,我也不知道他们两个谁的效果更好,我看了rad的最新版是2021年更新的,而crawlergo的最新版是2022年更新的,但在xray的官方文档里面,之前写的是xray与crawlergo联动,现在改成了xray与rad联动。我比较了一下,发现rad可以对需要登录的网址进行登录后爬虫,这个我在crawlergo的文档里好像没看到,所以我们还是也学一下rad

rad下载地址:https://github.com/chaitin/rad/releases

下载后和crawlergo一样,在电脑上找一个文件夹存放即可

然后终端进入这个文件夹,执行以下命令,以获取配置文件:

1./rad_darwin_amd64 -t http://example.com

注意:电脑里面需要安装chrome浏览器。可以看到上图中第一个INFO就是它自动找到了电脑里面Chrome浏览器的路径。

如下图,生成了配置文件

查看rad自带的帮助信息:

1./rad_darwin_amd64 -h

详细的rad使用方法这里不描述了,可以看xray官方文档里面与rad联动的那一部分,这里详细讲一下如果让rad爬取需要登录的网站

输入以下命令:

1./rad_darwin_amd64 -t http://192.168.31.73/DVWA/ --wait-login

注:这个网址是我在虚拟机中搭建的DVWA靶场,因为这个靶场需要登录才能用,所以这里以这个靶场为例。

运行命令,会自动打开chrome

输入账号密码登录后,返回命令行敲回车即可

这就是开始爬取了

⚠️rad打开浏览器默认是不加载图片的,可以看到刚刚上面访问DVWA靶场的时候,它的logo都没显示。但是如果某个网站登录是有验证码的,那么就需要登录的时候,在rad的配置文件中开启图片显示功能,这样才能显示出验证码

4、参数详情

查看xray的help提示信息

1)显示log信息

参数:

1--log-level value Log level, choices are debug, info, warn, error, fatal

使用方法:

1./xray_darwin_amd64 --log-level debug webscan --listen 127.0.0.1:1112

⚠️注意,这个参数一定要跟在二进制程序后面,不能写在webscan后面

2)指定漏洞插件

内置插件:

xss检测——xss SQL注入检测——sqldet 命令/代码注入检测——cmd-injection 目录枚举——dirscan 路径穿越检测——path-traversal XML实体注入检测——xxe poc管理——phantasm 文件上传检测——upload 弱口令爆破检测——brute-force jsonp检测——jsonp ssrf检测——ssrf 基线检查——baseline(检测低SSL版本、缺失的或错误添加的http头等) 任意跳转检测——redirect CRLF注入——crlf-injection 5、零基础编写自己的poc1)介绍

如果自己用python完整的写一个poc,除非自己之前有框架,不然写一个还是比较花时间的,但xray这里直接给我们一个接口,我们只需要写几行代码就能完成一个poc

2)配置环境

我这里用的是vscode

安装yaml插件,然后进入yaml设置里

打开这个settings.json文件,将里面的内容改成如下内容:

12345{ "yaml.schemas": { "https://raw.githubusercontent.com/chaitin/gamma/master/static/schema/schema-v2.json": ["fingerprint-yaml-*.yml", "poc-yaml-*.yml"] }}

新建一个名为poc-yaml-ex.yml的文件(文件名格式必须为fingerprint-yaml-*.yml或poc-yaml-*.yml),若出现如下图所示的小字,说明配置成功

3)最简单的poc12345678910111213141516name: poc-yaml-exampletransport: httprules: r1: request: method: GET path: "/" expression: | response.status == 200expression: r1()

detail: author: long warning: "test"

一共有五条内容,分别为名字(name)、传输方式(transport)、规则(rules)、表达式(expression)、详情(detail)

名字——自定义

传输方式——tcp/udp/http

规则——第一条规则r1是请求方法为get请求,请求路径为”/“的请求,规则的结果是若返回的响应码为200则说明这个相应是我们想要的

表达式——这个就是放规则的,这里只有一条规则r1,如果有两条,有可能我们只需要其中一条成立即可,所以需要做表达式来设定

详情——显示提示结果

执行:(注意,poc文件需要放在xray的目录下)

1./xray_darwin_amd64 webscan --plugins phantasm --poc ./poc-yaml-example.yml --listen 127.0.0.1:1112

我在浏览器上访问http://example.com/这个网站,因为是正常访问,响应码是200,所以就会返回这个漏洞信息。

4)进阶的poc

详见xray官方文档https://docs.xray.cool/#/README

当然,如果poc还不懂,或者xray的使用还不懂,可以看官方的这个视频教学

https://www.bilibili.com/video/BV1oZ4y1T7LX/?spm_id_from=trigger_reload&vd_source=1c5ca61229c8dbc860a3cedcd0dfc2bb

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

MacOS下搭建Go语言环境 上一篇 搜集URL的浏览器爬虫crawlergo安装使用(基于Mac OS) 下一篇


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有