Xray使用教程

2023-11-20

简介

  • Xray是长亭科技开发的一款漏扫工具。
  • 支持多种扫描方式和漏洞类型。
  • 可自定义POCProof of Concept)概念验证,即漏洞验证程序。

俺是在 乌雲安全 看到了这个工具的使用,作为一个脚本小子初学者,这里做一下笔记。

使用

webscan

参数

参数 作用
–list, -l list plugins
–plugins value, --plugin value, --plug value specify the plugins to run, separated by ‘,’
–poc value, -p value specify the poc to run, separated by ‘,’
–listen value use proxy resource collector, value is proxy addr, (example: 127.0.0.1:1111)
–basic-crawler value, --basic value use a basic spider to crawl the target and scan the requests
–browser-crawler value, --browser value use a browser spider to crawl the target and scan the requests
–url-file value, --uf value read urls from a local file and scan these urls, one url per line
–burp-file value, --bf value read requests from burpsuite exported file as targets
–url value, -u value scan a single url
–data value, -d value data string to be sent through POST (e.g. ‘username=admin’)
–raw-request FILE, --rr FILE load http raw request from a FILE
–force-ssl, --fs force usage of SSL/HTTPS for raw-request
–json-output FILE, --jo FILE output xray results to FILE in json format
–html-output FILE, --ho FILE output xray result to FILE in HTML format
–webhook-output value, --wo value post xray result to url in json format

主动扫描

  • 使用--basic-crawler模块实现爬虫+扫描功能。
$ ./xray webscan --basic-crawler {target_ip} --html-output {target_html}

爬取并扫描{target_ip}并将结果输出到{target_html}中。

  • 目标html报告会在当前目录下生成。

被动代理

  • 作为中间人进行处理报文信息。

此时代理能够拿到完整的请求报文,如果使用HTTPS依然可以获得明文信息。

  • 提前安装插件switchyomega并导入Xray的证书。
./xray genca

上述命令生成证书后,自行导入到对应浏览器中。

  • 启动代理。
./xray webscan --listen {listen_socket} --html-output {target_html}
  • 得到最后一行即启动成功。
└─$ ./xray webscan --listen 127.0.0.1:7777 --html-output result.html

____  ___.________.    ____.   _____.___.
\   \/  /\_   __   \  /  _  \  \__  |   |
 \     /  |    _  _/ /  /_\  \  /   |   |
 /     \  |    |   \/    |    \ \____   |
\___/\  \ |____|   /\____|_   / / _____/
      \_/       \_/        \_/  \/

Version: 1.7.1/f725e41e/COMMUNITY

[INFO] 2021-04-11 10:42:03 [default:entry.go:198] Loading config file from config.yaml
[WARN] 2021-04-11 10:42:03 [default:webscan.go:222] disable these plugins as that's not an advanced version, [thinkphp struts fastjson shiro]

Enabled plugins: [crlf-injection path-traversal xxe brute-force cmd-injection dirscan ssrf phantasm jsonp redirect sqldet upload baseline xss]  
                                                                                                                                                
[INFO] 2021-04-11 10:42:04 [phantasm:phantasm.go:170] 252 pocs have been loaded (debug level will show more details)
These plugins will be disabled as reverse server is not configured, check out the reference to fix this error. 
Ref: https://docs.xray.cool/#/configration/reverse                                                                                              
Plugins: 
        poc-yaml-dlink-cve-2019-16920-rce                                                                                                       
        poc-yaml-jenkins-cve-2018-1000600                                                                                                       
        poc-yaml-jira-cve-2019-11581                                                                                                            
        poc-yaml-jira-ssrf-cve-2019-8451                                                                                                        
        poc-yaml-mongo-express-cve-2019-10758                                                                                                   
        poc-yaml-pandorafms-cve-2019-20224-rce                                                                                                  
        poc-yaml-ruijie-eg-rce                                                                                                                  
        poc-yaml-saltstack-cve-2020-16846                                                                                                       
        poc-yaml-solr-cve-2017-12629-xxe                                                                                                        
        poc-yaml-supervisord-cve-2017-11610                                                                                                     
        poc-yaml-weblogic-cve-2017-10271                                                                                                        
        ssrf/ssrf/default                                                                                                                       
        xxe/xxe/blind                                                                                                                           
                                                                                                                                                

[INFO] 2021-04-11 10:42:06 [collector:mitm.go:214] loading cert from ./ca.crt and ./ca.key
[INFO] 2021-04-11 10:42:06 [collector:mitm.go:269] starting mitm server at 127.0.0.1:7777
  • switchyomega插件中配置好代理。

  • 在浏览器中打开你想要扫描的网站,代理会自动进行扫描。

配置文件

域限制

  • 为了防止对无用的域进行扫描,在config.yaml文件中可以配置黑白名单。
restriction:                          # 代理能够访问的资源限制, 以下各项为空表示不限制
    hostname_allowed: []                # 允许访问的 Hostname,支持格式如 t.com、*.t.com、1.1.1.1、1.1.1.1/24、1.1-4.1.1-8
    hostname_disallowed:                # 不允许访问的 Hostname,支持格式如 t.com、*.t.com、1.1.1.1、1.1.1.1/24、1.1-4.1.1-8
    - '*google*'
    - '*github*'
    - '*.gov.cn'
    - '*.edu.cn'
    - '*chaitin*'
    - '*.xray.cool'

hostname_allowed存放允许访问的域名,hostname_disallowed存放不允许访问的域名(支持通配符)。

登录代理

  • 设置用户登录。
  basic_auth:                           # 基础认证的用户名密码
    username: ""
    password: ""

插件选择

baseline:
    enabled: true
    detect_cors_header_config: true     # 检查 cors 相关配置
    detect_server_error_page: true      # 检查服务器错误信息
    detect_system_path_leak: false      # 检查响应是否包含系统路径泄露
    detect_outdated_ssl_version: false  # 检查 ssl 版本问题
    detect_http_header_config: false    # 检查 http 安全相关 header 是否配置
    detect_cookie_httponly: false       # 检查 set-cookie 时是否设置 http only
    detect_china_id_card_number: false  # 检查响应是否存在身份证号
    detect_china_phone_number: false    # 检查响应是否存在电话号码
    detect_china_bank_card: false       # 检查响应是否存在银行卡号
    detect_private_ip: false            # 检查响应是否包含内网 ip
 brute-force:
    enabled: true
    username_dictionary: ""             # 自定义用户名字典, 为空将使用内置 TOP10, 配置后将与内置字典**合并**
    password_dictionary: ""             # 自定义密码字典,为空将使用内置 TOP100, 配置后将与内置字典**合并**
cmd-injection:
    enabled: true
crlf-injection:
    enabled: true
dirscan:
    enabled: true
    depth: 1                            # 检测深度,定义 http://t.com/a/ 深度为 1, http://t.com/a 深度为 0
    dictionary: ""                      # 自定义检测字典, 配置后将与内置字典**合并**
fastjson:
    enabled: true
jsonp:
    enabled: true
path-traversal:
    enabled: true
phantasm:                             # poc 插件
    enabled: true
    depth: 1
    auto_load_poc: false                # 除内置 poc 外,额外自动加载当前目录以 "poc-" 为文件名前缀的POC文件,等同于在 include_poc 中增加 "./poc-*"
    exclude_poc: []                     # 排除哪些 poc, 支持 glob 语法, 如: "/home/poc/*thinkphp*" 或 "poc-yaml-weblogic*"
    include_poc: []                     # 只使用哪些内置 poc 以及 额外加载哪些本地 poc, 支持 glob 语法, 如:"*weblogic*" 或 "/home/poc/*"
                                        # 也可使用 --poc 仅运行 指定的内置或本地 poc,进行测试。
                                        # 例如,可使用如下命令,仅运行当前目录下的 poc 且 不运行内置 poc 进行测试:
                                        # webscan -poc ./poc-* -url http://example.com

通过enable开关,决定功能检测是否开启。

  • 使用--plugins参数限制使用插件。
./xray webscan --listen 127.0.0.1:1111 --plugins xss,xxe,cmd_injection

双重代理

  • 一般可以结合BurpSuite使用。
http:
	proxy: "http://127.0.0.1:8080"

自定义POC

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xray使用教程 的相关文章

  • `http://localhost` 上的安全 Cookie

    我正在尝试设置安全 cookiehttp localhost 3000 设置 Cookie loggedUser brillout 最大年龄 315360000 路径 仅 Http 安全的 但 Chrome 抱怨道 此 Set Cookie
  • 没有 Web 表单的 PHP POST 数据[重复]

    这个问题在这里已经有答案了 有没有一种方法可以在不使用 Web 表单的情况下发送 POST 数据 我正在与第 3 方支付处理商合作 我可以选择手动提交付款 但数据需要采用 POST 格式 我计划将我的脚本作为 CRON 作业运行 因此由于它
  • 使用元 http-equiv 标记进行重定向时,避免将页面添加到浏览器历史记录中

    我有一个网页 它使用以下命令重定向到所需的目标网址 我想避免第一页出现在浏览器历史记录中 特别是 在手机 Android iOS 等 中 我希望后退按钮可以跳过重定向页面 您有两个选择 要么使用真正的 HTTP 重定向 要么使用 JavaS
  • 如何使用 FastAPI 返回 HTMLResponse

    是否可以在端点显示 HTML 文件 例如用户正在访问的主页 是的 FastAPI 可能有HTMLResponse 您可以返回一个HTMLResponse from fastapi import FastAPI from fastapi re
  • 客户端语言

    我不是网络程序员 所以请原谅我的无知 当谈到服务器端编程时 我们有很多可用的技术 例如 PHP ASP net JSP 等 然而 说到客户端脚本 我只听说过 JavaScript 和 AJAX 也许您还可以包含 Java Applet 因为
  • 如何访问随机网站? - Python

    如何生成随机但有效的网站链接 无论语言如何 事实上 它生成的网站语言越多样化越好 我一直在使用其他人网页上的脚本来做到这一点 我怎样才能不依赖这些随机站点转发脚本并制作自己的脚本 我一直这样做 import webbrowser from
  • 客户端Web - 如何随时获取当前记录ID

    我正在努力 基于工作流程状态的不同权限 https stackoverflow com questions 10994216 different permissions based on workflow state问题 但我正在努力解决这
  • Django 中的 Meta 到底是什么?

    我想简单地知道 Django 中的 Meta 类是什么以及它们的作用 from django db import models Class Author models Model first name models CharField ma
  • 在 Foundation 中动态设置 Sass 变量

    如何在 Foundation 中动态设置 Sass 变量 根据他们的文档 http foundation zurb com docs components tables html 您可以借助一些 Sass 变量来自定义表格 settings
  • 使用 ruby​​ on Rails 向静态网站添加功能

    我是 ruby on Rails 的新手 我有一个包含很多静态页面的网站 我想向网站添加一些动态页面 我将在 ruby on Rails 中开发这些页面 当用户单击静态页面之一上的按钮之一时 将触发这些页面提供的功能 我想我将把动态页面放在
  • 在 Google Cloud 中设置网站? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我完全迷失在这之中 我习惯于使用带有 cpanel 的简单 Web 主机来制作网站 只需使用 filezilla 登录并上传我的 ht
  • 如何通过 HTML 输入标签获取文件的引用? (角度2)

    我想在 Firebase 中上传图片 但要做到这一点 我必须先获取文件 例如 如何通过 HTML 获取我的计算机的图像 我正在尝试这样做 但我不知道这样做的回报是什么 帮帮我吧伙计们
  • 引导程序中导航和巨型屏幕之间的差距

    对于我的一生 我无法确定我的导航和大屏幕之间的空白来自哪里 我已经玩过很多变量 但无法让它消失 我在这里做了一个cssdeckhttp cssdeck com labs u6ws0ozl http cssdeck com labs u6ws
  • 如何在 Laravel 7.x 中从控制器返回视图时传递 cookie?

    在 laravel 7 x 中 有什么方法可以在返回视图时将 cookie 传递给客户端吗 类似于 return view welcome gt cookie name value min 嗯 我做了一些研究 发现有一些方法 我熟悉的两个是
  • 用于网站的 Git / 接收后 / 测试站点和生产站点的分离

    我使用 Git 来管理网站的源代码和部署 目前测试站点和实时站点在同一个机器上运行 关注此资源http toroid org ams git website howto http toroid org ams git website how
  • IIS 7.5:对网站的初始请求永远不会加载

    当我第一次浏览我的网站时 互联网不断旋转 加载 如果我两秒钟后尝试再次加载它 一切都会正常 就好像它 睡着了 一样 我想这一定和 回收 有关 我已将 空闲超时 设置为 0 将回收 定期时间间隔 设置为 0 在浏览我的网站之前 我查看了 工作
  • IIS 6 网站根目录与应用程序?解决Url()?

    IIS 6 ASP NET 3 5 C NET 我们遇到一个问题 即同一组文件的行为会有所不同 具体取决于它是根 IIS 网站还是 IIS 网站下的应用程序 使用生成的网址解析网址 http msdn microsoft com en us
  • 尝试访问我的网站时出现内部服务器错误

    我收到这个错误 内部服务器错误 服务器遇到内部错误或配置错误 无法完成您的请求 请联系服务器管理员 电子邮件受保护 cdn cgi l email protection和 告知他们错误发生的时间以及您可能会发生的任何事情 所做的事情可能导致
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • 对同一域发出 get 请求,出现 CORS 错误

    在浏览器扩展中 这是我的 ajax 调用 var xhr new XMLHttpRequest xhr open GET window location href true xhr responseType arraybuffer xhr

随机推荐

  • java springboot -- MultipartFile -图片上传到远程服务器上

    新增文件 param file return private boolean saveFile MultipartFile file try 文件保存路径 String filePath A merchant 映射的地址 String fi
  • Springboot+vue+hadoop+java图书个性化推荐系统

    前台首页功能模块 3 1首页 图书个性化推荐系统 在前台首页可以查看首页 图书信息 好书推荐 留言反馈 个人中心 后台管理等内容 如图 3 2图书信息 在图书信息页面通过查看图书编号 图书名称 图书类别 图片 作者 出版社 版次 数量 点击
  • 背单词(持续更新)

    文章目录 星火雅思周计划 229 复习 考研 352 353 职场俚语 1 2 7分 1 2 3 4 5 6 7 8 haochi fun 1 2 GRE 1 2 托福 249 247 248 245 246 243 244 241 242
  • 3WebGL shader准备工具

    VSCode安装 VSCode 全称 Visual Studio Code 是一款由微软开发且跨平台的免费源代码编辑器 该软件支持语法高亮 代码自动补全 又称 IntelliSense 代码重构 查看定义功能 并且内置了命令行工具和 Git
  • Unity保存图片到相册

    Unity保存图片到Android相册 Java 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  • ESXI 7.0 版本配置N卡显卡直通

    ESXI 7 版本配置N卡显卡直通 前因 ESXI版本太新 网上啥参考资料没有 显卡直通各种问题 虚机一装显卡驱动就直接把宿主机直接整挂了 于是各种查资料 各种尝试 终于搞定直通问题 配置 名称 版本 服务器 DELL R720 ESXI
  • MySQL中的DML、DDL、DCL到底是什么玩意呢?

    个人主页 极客小俊 作者简介 web开发者 设计师 技术分享博主 希望大家多多支持一下 我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 引言 一直以来 很多人分不清这三个东西到底是什么简称 代表什么 至在面试中遇到可能会
  • nginx的location、root、alias指令用法和区别

    亲测可用 若有疑问请私信 nginx指定文件路径有两种方式root和alias 指令的使用方法和作用域 root 语法 root path 默认值 root html 配置段 http server location if alias 语法
  • Arduino动手做(48)---三轴ADXL345模块

    37款传感器与模块的提法 在网络上广泛流传 其实Arduino能够兼容的传感器模块肯定是不止37种的 鉴于本人手头积累了一些传感器和模块 依照实践 动手试试 出真知的理念 以学习和交流为目的 这里准备逐一做做实验 不管能否成功 都会记录下来
  • 第十二届蓝桥杯 2021年省赛真题 (Java 大学C组) 第二场

    蓝桥杯 2021年省赛真题 Java 大学C组 第二场 A 浮点数 B 求余 C 双阶乘 D 格点 E 整数分解 F 3 的倍数 G 特殊年份 H 小平方 I 完全平方数 J 负载均衡 A 浮点数 题目 问题描述 IEEE 754 规定一个
  • 关于HTML基本标签及结构详解

    本文主要介绍了HTML基本标签及结构详解 本文给大家介绍的非常详细 对大家的学习或工作具有一定的参考借鉴价值 需要的朋友可以参考下 1 HTML概述 1 HTML 超文本标记语言 是一种标识性语言 非编程语言 不能使用逻辑运算 通过标签将网
  • 吴恩达 deeplearning.ai课程-卷积神经网络 (2)深度卷积模型-实例探究

    参考来源 https blog csdn net red stone1 article details 78769236 https blog csdn net koala tree article details 78531398 有关C
  • python自动化笔记(九)文件操作

    文件的打开 file open test txt w encoding utf 8 参数 文件名 访问模式 write 默认为read file write hello python 删除原有内容 并写入 ret file read 读取文
  • Flutter使用百度定位经纬度数据正常,详细地址为null

    Flutter使用百度定位经纬度数据正常 详细地址为null 更新至2021 09 07 一 问题 1 使用百度定位 插件返回的数据中经纬度有正常值 其他地址信息都为null 二 分析原因 1 在wifi或移动网络没有 不好的情况下 会出现
  • 自动注册appleid

    1 通过猴油注册脚本 用js填写表单 问题 由于apple官网采用了自己封装的mvvm框架 如果只是赋值的话 还不能把视图上的数据更新到model上 必须触发一下表单元素的input事件或者change事件完成model的更新 CSP网站安
  • 孤儿进程和僵尸进程

    作者 华清远见讲师 前段时间 由于研究经典面试题 把孤儿进程和僵尸进程也总结了一下 我们有这样一个问题 孤儿进程和僵尸进程 怎么产生的 有什么危害 怎么去预防 下面是针对此问题的总结与概括 一 产生的原因 1 一般进程 正常情况下 子进程由
  • vue 表格表头内容居中

    放入
  • elasticsearch的object类型和动态映射

    我们需要讨论的最后一个自然JSON数据类型是对象 object 在其它语言中叫做hash hashmap dictionary 或者 associative array 内部对象 inner objects 经常用于在另一个对象中嵌入一个实
  • node mysql高级用法_nodejs中mysql用法

    1 建立数据库连接 createConnection Object 方法 该方法接受一个对象作为参数 该对象有四个常用的属性host user password database 与php中链接数据库的参数相同 属性列表如下 host 连接
  • Xray使用教程

    简介 Xray是长亭科技开发的一款漏扫工具 支持多种扫描方式和漏洞类型 可自定义POC Proof of Concept 概念验证 即漏洞验证程序 俺是在 乌雲安全 看到了这个工具的使用 作为一个脚本小子初学者 这里做一下笔记 使用 web