Xray简单使用

技术标签: 漏洞、安全、’工具

Xray简单使用教程

0X00下载

xray 为单文件二进制文件,无依赖,也无需安装,下载后直接使用。

下载地址为:

Github: https://github.com/chaitin/xray/releases (国外速度快)

网盘: https://yunpan.360.cn/surl_y3Gu6cugi8u (国内速度快)

注意: 不要直接 clone 仓库,xray 并不开源,仓库内不含源代码,直接下载构建的二进制文件即可。

xray 跨平台支持,请下载时选择需要的版本下载。

0X01版本选择

windows_amd64 Windows x64

windows_386 Windows x86

系统版本要求大于等于 Windows 7 或大于等于 Windows Server 2008 R2, 不支持 Windows XP、Windows 2003 等低版本系统。

对于 release 中的其他文件,说明如下:

sha256.txt 校验文件,内含个版本的 sha256 的哈希值,请下载后自行校验以防被劫持投毒。

Source Code Github 自动打包的,无意义,请忽略。

0X02运行

下载对应系统的版本后,来查看下 xray 的版本号。

以下载到 C:\Users$User\Downloads 为例,右键解压,就可以得到 xray_windows_amd64.exe 文件了(有的解压软件还会创建一个 xray_windows_amd64.exe 的文件夹,不要和最终的可执行文件混淆了)。

使用桌面左下方的的搜索框,输入 PowerShell,点击 Windows PowerShell,进入命令终端。

然后 cd 到下载目录,运行 .\xray_windows_amd64.exe version 即可查看 xray 的版本号。

在这里插入图片描述

0X03基础命令

.\xray_windows_amd64.exe –h

通过-h命令发现xray命令有

在这里插入图片描述

GLOBAL OPTIONS

先来看一个界面中的这三个全局配置项。全局配置的意思是如果在这指定了,那么所有命令执行的时候都会生效。

–config 用于指定配置文件的位置,默认加载同目录的 config.yaml。关于配置文件请看下一节文档的内容

–log_level 用于指定全局的日志配置,默认为 info, 可以通过设置为 debug 来查看更详细的请求信息、运行时日志信息。

全局配置的使用时需要紧跟二进制程序,如:

.\xray_windows_amd64.exe --log_level debug --config 1.yaml webscan --url xxx

.\xray_windows_amd64.exe --log_level debug reverse

而下面这种方式是不生效的,使用时需要注意下:

.\xray_windows_amd64.exe webscan --log_level debug

commands

xray 的命令有 6 个,抛开 version 和 help 这两个信息展示型的命令,还有 webscan, reverse, genca, subdomain 四个。

reverse 命令用于启动单独的盲打平台服务,盲打平台用于处理没有回显或延迟触发的问题,如果你挖过存储型 XSS,一定对这个不陌生。这部分内容相对独立,单独用一节来介绍。

genca 用于快速生成一个根证书,主要用于被动代理扫描 HTTPS 流量时用到。

subdomain 是子域名扫描的命令,仅高级版才有。

webscan 是 xray 的重头戏。

subdomain子域名扫描

扫描 example.com,并将结果输出到 example.txt

.\xray_windows_amd64.exe subdomain --target example.com --text-output example.txt

扫描 example.com,并使用 console ui 交互式界面,同时记录结果到 example.txt

.\xray_windows_amd64.exe subdomain --target example.com --console-ui --text-output example.txt

webscan 扫描web漏洞

运行 .\xray_windows_amd64.exe webscan -h,可以看到

在这里插入图片描述

配置扫描插件

–plugins 配置本次扫描启用哪些插件, 不再使用配置文件中的配置

–plugins xss --plugins xss,sqldet,phantasm

–poc 配置本次扫描启用哪些 POC, 因为所有 POC 隶属于 phantasm 插件, 所以该参数其实是 phantasm 插件独有的配置。为了使用方便,该参数支持 Glob 表达式批量加载,

解析规则为用该参数值匹配内置的 poc 名字,如果有匹配到则启用;然后检查能否匹配本地文件,如果能匹配到,也加载。用起来是非常灵活的,如

只加载一个 POC, 精准匹配

–plugins phantasm --poc poc-yaml-thinkphp5-controller-rce

加载内置的所有带 thinkphp 的 POC

–plugins phantasm --poc “thinkphp

加载本地 /home/test/pocs/ 目录所有的 POC:

–plugins phantasm --poc “/home/test/pocs/*”

加载 /home/test/pocs/ 下包含 thinkphp 的 POC

–plugins phantasm --poc “/home/test/pocs/thinkphp” …

配置输入来源

中间的这四个是互斥的,意味着一次只能启用这5个的一个。

–listen 启动一个被动代理服务器作为输入,如 --listen 127.0.0.1:4444,然后配置浏览器或其他访问工具的 http 代理为 http://127.0.0.1:4444 就可以自动检测代理中的 HTTP 请求并进行漏洞扫描。

–basic-crawler 启用一个基础爬虫作为输入, 如 --basic-crawler http://example.com,就可抓取 http://example.com 的内容并以此内容进行漏洞扫描

–url 用于快速测试单个 url,这个参数不带爬虫,只对当前链接进行测试。默认为 GET 请求,配合下面的 --data 参数可以指定 body,同时变为 POST 请求。

–raw-request 用于加载一个原始的 HTTP 请求并用于扫描,原始请求类似上面代码框中的原始请求,如果你用过 sqlmap -r,那么这个参数应该也很容易上手。

配置输出

最后三个用于指定结果输出方式,这三种方式可以单独使用,也可以搭配使用。

–html-output 将结果输出为 html 报告, 报告样例

–webhook-output 将结果发送到一个地址

–json-output 将结果输出到一个 json 文件中

–webhook-output和–json-output 输出是 json 格式的结构化数据,数据格式参照: 漏洞格式。

你可以在–json-output和–html-otput参数中使用变量__timestamp__和__datetime__,这样文件名中对应位置会自动替换为时间戳或日期时间,避免输出到同一文件时报错。如–html-output report-datetime.html将使用report-2019_11_01-10_03_26.html作为报告文件名。

联合使用

将上面说的一些结合起来使用,就可以满足多种场景下的使用需求了。下面的例子都是可以正常运行的,作用不言而喻。

下面是一些例子

./xray_darwin_amd64 webscan --plugins xss --listen 127.0.0.1:1111 --html-output 1.html

./xray_darwin_amd64 --log_level debug webscan --plugins xss,cmd_injection --basic-crawler http://example.com --json-output 1.json

./xray_darwin_amd64 webscan --url http://example.com --data “x=y” --html-output 2.html --json-output 1.json

./xray_darwin_amd64 webscan --url http://example.com/ --webhook-output http://host:port/path

内容转自 https://www.cnblogs.com/L0ading/p/12388898.html

来源:https://www.cnblogs.com/L0ading/p/12388898.html


智能推荐

计算机网络基础:Vlan,网关,dns吗,子网掩码等!面试必备!

很多朋友多次问到什么是网关、dns、子网掩码,三层交换机,它们定位的用途;确实,因为网络技术在弱电中确实应用非常广泛,我们平时在 vip 技术群中也是不断的讨论到网关、vlan、三层交换机或子网掩码等问题,今天我们就一起用通俗方式一次性了解清楚。 一、什么是 vlan? VLAN 中文是 “虚拟局域网”。LAN 可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机...

乐播科技冯森:我为什么不看好Android电视游戏

(乐播科技的三位创始人,从右往左依次为:冯森、廖峰、陈锡华) 电视在家居生活中扮演的角色重新获得了人们的认知,这块屏幕成为巨头们谋划的方向,其中一个属性便是家庭的娱乐中心。但在国内,各种基于Android平台的电视和盒子又面临游戏内容缺乏的窘境。当然,很多人或者团队都在努力着希望完善这个生态系统,但是好像没有那么简单。 另一方面,苹果系统已经是非常成熟的平台,各类iOS游戏的质量也很高。于是,来自...

Java使用阿里云OSS对象存储上传图片

该案例是OSS Java SDK的示例程序,您可以修改endpoint、accessKeyId、accessKeySecret、bucketName后直接运行。 本示例中的并不包括OSS Java SDK的所有功能,详细功能及使用方法,请参看“SDK手册 > Java-SDK”, 链接地址是:https://help.aliyun.com/document_detai...

很多.net 程序员不知道又非常重要的 .net高级调试技巧.调试别人的dll方法内的变量...

事情是这样的, 最近需要开发Orcale的数据库. 于是使用了EF 加上 Oracle.ManagedDataAccess.Client 这个Oracle.ManagedDataAccess 很好用, 不需要orcale 客户端就能用. 但是这个类库有个地方不是非常好用. 数据读取出了问题,它的提示非常非常让人气愤. 啥调试信息都没有..只有一个提示 “类型转换异常”. 大...

Spring框架

了解Spring框架 好处 : 1.不依赖于应用服务器. 2.IOC(控制反转)技术实现组件控制. 通过DI(依赖注入)技术提高了组件之间的解耦. 3.通过AOP(面向切面编程)技术实现安全、事务、日志功能的统一管理, 提高复用. 4.Spring框架可以几乎与其他任何框架进行良好的整合使用. 5.Spring所有项目之间不相互依赖. IOC : 控制反转. 本质: 将手动创建对象的工作,交给Sp...

猜你喜欢

计算机网络简要框架

物理层 **、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,中继器和集线器。 中继器: 又称转发器,原理是信号再生和还原,扩大网络传输距离。 仅作用于信号的电气部份,不管数据中是否有错误数据或不适合网段的数据。 中继器的两端既能连接相同的媒体又能...

解决SVN不显示绿色图标问题

修改注册表 Windows Explorer Shell支持Overlay Icon最多15个,Windows自身已经使用了4个,所以就只剩下了11个供我们使用。如果你之前安装了例如Groove这样的软件,那么可能我们可利用的就更少了,轮不到Tortoise了。像这样的情况,我们可以调整Tortoise图标名称的字母顺序,来提高Tortoise的优先位,因为Windows内部就是安装名称的字母顺序...

DataX篇—离线同步作业分析及JSON构建

DataX系列 [第一章 DataX篇—阿里开源ETL同步工具](https://blog.csdn.net/qq_33451695/article/details/115048824?spm=1001.2014.3001.5501). 离线同步作业分析及JSON构建 DataX系列 前言 一、思路 二、增量同步问题 触发器 双向同步循环问题 二、插件扩展 前言 因业务需要,存在数据源...

poj 3047(树的重心 裸模板)

Last years Chicago was full of gangster fights and strange murders. The chief of the police got really tired of all these crimes, and decided to arrest the mafia leaders. Unfortunately, the structure ...

mybatis plus的条件构造器

我们在使用条件构造器的时候要使用QueryWrapper或者UpdateWrapper来充当条件语句来进行构造 QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类 用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件...

问答精选

How to extract beta coefficients for interaction effect in R?

I am examining the interaction between a continuous variable (bloodq) and a categorical variable with three levels (ER, RB, and WB). In order to see how the betas differ across tissue types, I would l...

what is the difference between Flatten() and GlobalAveragePooling2D() in keras

I want to pass the output of ConvLSTM and Conv2D to a Dense Layer in Keras, what is the difference between using global average pooling and flatten Both is working in my case. That both seem to work d...

How to invoke a test step with inputs at runtime from groovy script in SOAP UI?

I am writing a validation groovy script for a test step, intended to test a SOAP Web Service. Now, I want to call the same test step, with different input value from the groovy script. Is it possible?...

Wicket pagestore results wrong page

I have a problem with my web application with wicket. I am using wicket 6.14. I can't say exactly what the problem is, but I can describe the problem. I am using a self written pagestore, which uses h...

Unity load files from outside of resources folder

In unity is it possible to load a resource that is out side of the resources folder. I want the user to be able to set a textAsset variable from a file outside of the Assets directory entirely. You ca...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答