xray:漏洞扫描利器

news2024/12/23 7:51:04

简介

长亭科技旗下的一款网络安全漏洞扫描工具,用于检测和评估web应用程序的安全性。具有一下特点:检测速读快、检查范围广、代码质量高、高级可定制以及安全无危害。属于不开源的项目,用户直接下载xray的可执行文件,即可运行该工具

xray使用了与burpsuit一样的盈利模式:社区版、高级版和企业版

xray目前支持检测的漏洞:

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)
XStream 系列漏洞检测 (key: xstream)
POC 框架 (key: phantasm)

下载和安装

XRAY是一款不开源的漏扫工具,

提供两种下载渠道:

  1. 官方下载:GitHub - chaitin/xray: 一款完善的安全评估工具,支持常见 web 安全问题扫描和自定义 poc | 使用之前务必先阅读文档
  2. 非官方渠道(高级版,版本相对落后与官方版本):https://www.iculture.cc/software/pig=30388

大家根据自己的求进行下载

基本使用

初始化

xray属于命令行执行的工具,并未提供图形化界面。所以,在我们下载好程序之后,将其解压到一个目录,然后通过cmd或者powershell进入这个目录


不过在正式运行之前,我们需要执行一次命令,用于初始化配置文件:


执行完成之后,回到目录就能发现先他有了最初的配置文件


在修改配置文件的情况下,我们就已经能够简单的使用xray来扫描一部分的网站了。

xray存在两种运行方式:

  1. 主动扫描
  2. 被动扫描

主动扫描

主动扫描类似于SQLmap工具,用户通过指令设置需要扫描的功能、提供需要扫描的目标、设定结果保存的格式即可完成一次攻击

xray_windows_amd64.exe ws --url "http://testphp.vulnweb.com" --html-output 1.html

这个是一个简单的示例,当我们在cmd中执行命令之后,xray就会列出可攻击的poc和会测试的点:


当探测到漏洞之后,会在终端以红色内容来输出漏洞信息:


比如上面就发现了目标站点存在 .idea配置文件信息泄露漏洞,此时我们就可以通过它同的poc去验证这个漏洞是否真实存在:


通过在终端里面看,并不是非常的方便,当xray扫描完成之后,xray会根据用户设定的保存格式,将所有检测到的漏洞都输出到对应的文件里面,比如我们在最开始使用的 —html-output 指令,就是让xray将结果以html形式输出:


这样我们就可以通过访问这个文件来获取漏洞的详细信息


然后我们就可以通过这样在网页上查看到它具体的漏洞信息。在xray的返回结果里面,有两个比较重要的字段:target和 pluginname/vulntype
target : 保存了存在漏洞的url地址
pluginname/vulntype: 则记录了url中存在的漏洞。
当然,这个知识记录了简单的信息。当我们想要看某个漏洞的具体细节时:可以通过点击 ID 列前面的加号,来展开这个漏洞:


然后就可以查看到对应漏洞的细节:URL、payload和请求包。

通过这个演示之后,我想大家应该都掌握了xray的基本用法,接下来就是去查看他的一些具体的功能和使用参数了。
xray_windows_amd64.exe -h 查看xray的帮助信息:


在我当前使用的这个xray工具,能够实现一下攻击:

webscan      ws    web扫描任务
servicescan  ss    服务扫描
subdomain    sd    子域名扫描
poclint      pl,lint  检测poc的规范情况
burp-gamma   btg   将bp的poc转换成xray的poc格式
transform          将其他与语言的脚本转化成gamma脚本
reverse            运行独立的反向连接服务器
convert            扫描结果之间的转换(html -> json, json -> html)
genca              初始化ca证书
upgrade            更新xray
version            版本信息
x                  查看说有poc的可用性

对于安全测试人员来说,主要使用的是webscan、servicescan和subdomain

webscan

xray_windows_amd64.exe ws -h 通过这条命令,就可以查看到当前webscan的帮助信息:

--list    -l                           列出所有的plugin
--plugins value, --plugin value        检测指定的plugin
--poc value, -p value                  检测指定的poc
--level value                          指定poc的危害等级,只使用某个级别的poc(low,medium,high,critical),需要要使用多个级别时,用逗号分隔
--tags value                           指定运行某个标签的poc
--listen value                         监听一个地址,进行被动扫描
--basic-crawler value, --basic value   爬虫模式扫描,自动探测网站的所有url连接,并且进行扫描
--url-file value, -uf value            从文件中读取url,并对这些url进行测试
--burp-file value, --bf value          读取bp的请求包,进行测试
--url value, -u value                  指定单条url进行测试
--data value, -d value                 指定测试post传参点(username=admin)
--raw-request file, --rr file          加载原生http请求
--force-ssl, --fs                      配置访问https网站
--json-output file, --jo file          以json格式保存扫描结果
--html-output file, --ho file          以html格式保存扫描结果
--webhook-output value, --wo value     根据xray的格式保存结果

接下来进行演示:

列出所有可用的plugin

xray_windows_amd64.exe ws -l 列出所有的可用plugin

指定plugin模块

xray_windows_amd64.exe ws --plugins xss,dirscan -u "http://testphp.vulnweb.com" --ho 2.html指定扫描模块进行扫描

指定poc进行扫描

xray_windows_amd64.exe ws --poc poc-yaml-manageengine-servicedesk-cve-2017-11512-lfi -u "http://testphp.vulnweb.com" --ho 5.html 指定poc进行扫描,需要将poc写在xray的可执行目录下

使用网页爬虫进行漏洞测试

xray_windows_amd64.exe ws --basic-crawler "http://testphp.vulnweb.com" --ho 6.html 使用网页爬虫,爬取网站上所有的链接,并将链接加入到测试队列中


在使用爬虫模式时,只能对单个url链接进行爬虫模式扫描

批量网站扫描

xray_windows_amd64.exe ws --uf target.txt --ho 5.html 将目标站点放入文件中,实现批量目标扫描

在实际工作中,可以通过选择一种扫描方式,然后利用 —poc和—plugins的组合,来控制扫描使用的poc。

servicescan

xray 中最常见的是 web 扫描,但是 xray 将会逐渐开放服务扫描的相关能力,目前主要是服务扫描相关的 poc。同样的,通过一个案例来进行演示:


很显然,内置的 servicescan的poc相对来说量还是有点少的,不过也有肯能是我的操作不对,那就查看一手帮助信息:
xray_windows_amd64.exe ss -h 查看帮助信息


从帮助信息中不难看出,新的功能就3个:

--target value, -t value            指定目标
--module value, -m value            指定目标服务器的中间件,目前只支持 tomcat和weblogic
--target-file value, --tf file      指定扫描使用的poc的路径

从这里就能看出,有点点的鸡肋了。

subdomain

xray也推出了子域名查询的功能,不过它属于高级版和企业版才有的功能,所以换个非官方的xray,试一手,尝尝鲜:
xray.exe subdomain --target "zkaq.cn" --html-output 5.html 扫描目标站点的子域名


当成功扫到域名之后,会在终端以绿色字体显示


感觉他的实现方式有点在暴力破解,又好像有在调用dns进行查询,每太看懂。
简单演示完了之后,接下就试去查看帮助信息:
xray.exe subdomain -h 查看子域名暴破的帮助信息


ok,不难看出,和 serverscan 大差不差。

被动扫描

代理模式下的基本架构为,扫描器作为中间人,首先原样转发流量,并返回服务器响应给浏览器等客户端,通讯两端都认为自己直接与对方对话,同时记录该流量,然后修改参数并重新发送请求进行扫描。
主动扫描已经能够帮助我们完成一些内容漏洞发现了,但是,在我看来xray更更核心的功能是他的被动扫描模块。
在使用被动扫描模式之前,我们需要先初始化一份ca证书,并且将证书导入到浏览器中:

生成证书

xray.exe genca初始化证书

初始化监听

xray.exe ws --listen 127.0.0.1:8082 --ho 6.html 初始化xray的监听地址


通过这样的方式,xray就已经开始进行监听了。之后只需要将浏览器的代理只想xray的代理地址,xray的被动扫描功能就能体现出来的


当我将浏览导入好证书、设置好代理之后,访问bbs.zkaq.cn,然后我的xray就开始去扫描站点了


这样,xray就能有效的对一些需要登录的功能点进行测试,并且,他的测试是你访问了这个站点url之后,它检测到数据包了,才会去进行检测。不过在使用xray被动模式时,需要进行一些设置,不然可能会误伤其他站点。就比如我现在,并没有去设置xray的配置文件,然后它对一外站也进行测试

配置文件修改

再上面的测试中,我们一直使用的都是默认配置,xray再默认情况下是对政府网站和校园网站禁止访问的,如果你再用xray去测试一些校园src的时候,可能就会因为配置的原因而无法进行扫描。
所以在工作和使用中,大家需要及时去修改和调整xray的配置文件。
默认情况下,第一此运行xray,xray就会在目录下生成配置文件


这些.yaml后缀的文件就是xray的配置文件,其中config.ymal中包含了最基础的xray配置:

http           基础的http请求配置
plugins        扫描时使用的插件和poc
reverse        反连平台,有一部分poc时需要通过反连平台来确定漏洞是否存在。
mitm           被动扫描
basic-crawler  主动扫描中的爬虫设置

在这些配置中,最基础的配置是http、mitm和basic-crawler三个项目

http

在http中,我们需要修改的内容就包括一下三个点

proxy: 能帮助用户吟唱自己的真实IP,同时对于一些网站的防护(基于IP尽心的防护)
max_qps: 设置发包速率,防止发包过快,导致一些站点崩溃
headers: 设置请求头,可以往里面插入一些请求头的内容

mitm

在mitm中,我们需要修改的东西不多,就也就三个点:


一个设置允许和禁止xray访问的域名,一个设置上层代理。配置方式,大同小异,知识这里的配置只影响被动扫描功能

hostname_allowed:   # 设置允许访问域名,*通配符
- "*.ncu.edu.cn"
- "*.jxnu.edu.cn"
hostname_disallowed:  # 设置不允许访问的域名
- "*google*"
- "*firefox*"
- "*bing.com"
- "*.gov.cn"
- "*.edu.cn"

upstream_proxy: 'http://127.0.0.1:8080'  # 设置上游代理,隐藏个人IP
basic-crawler

爬虫需要设置的内容可能稍微偏多一些


爬虫没有单独设置代理,它的代理使用的http配置项中的代理来实现隐藏IP或者防护的。

max_depth: 1
max_count_of_links: 10

hostname_allowed:   # 设置允许访问域名,*通配符
- "*.ncu.edu.cn"
- "*.jxnu.edu.cn"
hostname_disallowed:  # 设置不允许访问的域名
- "*google*"
- "*firefox*"
- "*bing.com"
- "*.gov.cn"
- "*.edu.cn"

完成这些基础配置后,绝大部分的工作场景都能使用了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1182040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于STM32的烟雾传感器

1.说到烟雾传感器,就有必要了解一下ADC的工作原理,Analog-to-Digital Converter,指模拟/数字转换器 。 2. 选择ADC 3.main函数 uint32_t smoke_value 0; while (1){HAL_ADC_Start(&hadc1);//启动ADC1转换HAL_ADC_PollForConversion(&am…

Linux防火墙入门:学会使用firewalld和iptables

1 防火墙 1.1 防火墙介绍 防火墙就是过滤的表格,被记录在表格中的信息,才允许通过访问。 1.2 两种火墙策略 iptables dnf install iptables-services -y systemctl disable --now firewalld systemctl mask firewalld systemctl enable --now ip…

BP神经网络的数据分类——语音特征信号分类

大家好,我是带我去滑雪! BP神经网络,也称为反向传播神经网络,是一种常用于分类和回归任务的人工神经网络(ANN)类型。它是一种前馈神经网络,通常包括输入层、一个或多个隐藏层和输出层。BP神经网…

Go 面向对象,多态

面向对象 工程结构 新建一个oop.go package _oop // Package _oop 引用名称import ("fmt""strconv" )// GIRL 常量 const (// GIRL 自增GIRL Gender iotaFIRSTSECONDTHIRD )type Gender uint8 // 无符号的8位整数类型// User 结构体 type User struct…

pyinstaller 打包 paddleocr

一、场景 我们在使用pyinstaller打包完以后,在执行时会出现一些第三方库找不到,尤其是paddleocr库二、解决方法 在打包paddleocr的时候,他的一些模块不会跟着一起打包,我们要使用已下方法来进行打包处理一般情况下打包 pyinsta…

被王牌对王牌种草闺蜜机?来看看当贝PadGO

不少朋友都很喜欢热播综艺《王牌对王牌》,细心的朋友又在观看综艺的过程中被种草了可以移动的电视屏幕——闺蜜机。 目前国产闺蜜机比较热门的品牌是当贝PadGO和小度添添闺蜜机。个人在使用体验后更偏向当贝PadGO闺蜜机,因为从配置性能和系统功能当贝PadGO都更胜一筹。 1、4K画…

K8S知识点(六)

(1)资源管理方式1 其他参数 其他参数以json格式显示pod信息 以yaml显示pod信息: 用describe描述容器的详细信息:包括ip啊,镜像啊,端口啊,容器启动经历的历程 创建命名空间Pod: 查询…

排序算法之-冒泡

顺序排序算法原理 从头开始遍历未排序数列,遍历时比较相邻的两个元素,前面的大于后面的,则双方交换位置,一直比较到末尾,这样最大的元素会出现在末尾,接着再依次从头开始遍历剩余未排序的元素,…

upload-labs-1

文章目录 Pass-01 Pass-01 先上传一个正常的图片&#xff0c;查看返回结果&#xff0c;结果中带有文件上传路径&#xff0c;可以进行利用&#xff1a; 上传一个恶意的webshell&#xff0c;里面写入一句话木马&#xff1a; <?php eval($_POST[cmd]); echo "hello&quo…

Google警告黑客如何滥用日历服务作为隐蔽的C2信道

导语 最近&#xff0c;谷歌发布了一份关于黑客如何滥用日历服务作为隐蔽的C2信道的警告。这种新型攻击方式利用了谷歌日历作为C2基础设施&#xff0c;给安全防御带来了新的挑战。本文将介绍这种攻击方式的细节&#xff0c;以及如何防范这一威胁。 Google Calendar RAT&#xff…

三维虚拟沙盘数字全景沙盘M3DGIS系统开发教程第18课

三维虚拟沙盘数字全景沙盘M3DGIS系统开发教程第18课 上一节我们实现了模型的移动控制。这次我们来实现模型的材质控制&#xff0c;首先我们找一个模型。在3dmax中如下&#xff1a; 可以看到这个模型很复杂。分成了很多层。我们先不管它。导入SDK后如下图&#xff1a; 有贴图还…

IP代理如何选择?4大误区你别踩!

近年来&#xff0c;我国互联网商业保持持续发展的状态大环境的优化&#xff0c;大大小小的企业都想乘胜追击&#xff0c;大展宏图&#xff0c;积极推动各项数据业务的进程。 而对于跨境业务来说&#xff0c;代理IP是不可或缺的重要工具之一&#xff0c;市面上代理IP类型众多&a…

React动态生成二维码和毫米(mm)单位转像素(px)单位

一、使用qrcode.react生成二维码&#xff0c;qrcode.react - npm 很简单&#xff0c;安装依赖包&#xff0c;然后引用就行了 npm install qrcode.react或者 yarn add qrcode.react直接上写好的代码 import React, {useEffect, useState} from react; import QRCode from qr…

MySQL中的datetime和timestamp有什么区别

相同点: 存储格式相同 datetime和timestamp两者的时间格式都是YYYY-MM-DD HH:MM:SS 不同点: 存储范围不同. datetime的范围是1000-01-01到9999-12-31. 而timestamp是从1970-01-01到2038-01-19, 即后者的时间范围很小. 与时区关系. datetime是存储服务器当前的时区. 而timesta…

leetcode:2278. 字母在字符串中的百分比(python3解法)

难度&#xff1a;简单 给你一个字符串 s 和一个字符 letter &#xff0c;返回在 s 中等于 letter 字符所占的 百分比 &#xff0c;向下取整到最接近的百分比。 示例 1&#xff1a; 输入&#xff1a;s "foobar", letter "o" 输出&#xff1a;33 解释&…

解决ntfs-3g-mount: mount failed硬盘无法挂载的问题

操作系统&#xff1a;ubuntu 20.04 遇到的问题&#xff1a;开机后挂载usb外接硬盘失败&#xff08;外接硬盘盒&#xff09;&#xff0c;报错&#xff1a;ntfs-3g-mount: mount failed: Device or resource busy 问题原因&#xff1a;openwrt容器&#xff08;--restart always&a…

无人机航迹规划:小龙虾优化算法COA求解无人机路径规划MATLAB(可以修改起始点,地图可自动生成)

一、小龙虾优化算法COA 小龙虾优化算法&#xff08;Crayfsh optimization algorithm&#xff0c;COA&#xff09;由Jia Heming 等人于2023年提出&#xff0c;该算法模拟小龙虾的避暑、竞争和觅食行为&#xff0c;具有搜索速度快&#xff0c;搜索能力强&#xff0c;能够有效平衡…

【Devchat-AI】编程得力助手,DevChat会让你对编程有新理解新认识

2023年&#xff0c;注定是一个AI大语言模型百花齐发的一年&#xff0c;从chatGPT开始&#xff0c;紧随其后&#xff0c;文心一言&#xff0c;通义千问&#xff0c;星火等等都发布了各自的语言大模型&#xff0c; 各有优势&#xff0c;但也能看出来&#xff0c;还有很多长的路要…

记一次经典SQL双写绕过题目[极客大挑战 2019]BabySQL 1

题目环境&#xff1a; 作者已经描述进行了严格的过滤 做好心理准备进行迎接 判断注入类型 admin 1’ 字符型注入万能密码注入 admin 1’ or ‘1’1 报错 已经是字符型注入了&#xff0c;所以的话只有or这里存在了过滤 联想到buuctf里面还没有碰到双写绕过的题目 所以这里斗胆试…

创建asp.net core mvc项目

一、安装vs2019 百度搜索【visual studio社区版下载】&#xff0c;进入微软官网 二、安装环境 运行vs2019,点击“工具”->“获取工具和功能” 三、打开vs2019 1.“文件”->“新建”->“项目”-> “ASP.Net Core Web 应用&#xff08;模型-视图-控制器&#xff09…