# xray Documentation ## Docs - [介绍](https://docs.xray.cool/Introduction.md): 一个免费的安全社区工具平台 - [使用导航](https://docs.xray.cool/Usage.md): 关于该文档的使用导航 - [Code Blocks](https://docs.xray.cool/essentials/code.md): Display inline code and code blocks - [提交流程](https://docs.xray.cool/excitation/contribute.md) - [审核收录标准](https://docs.xray.cool/excitation/reward.md) - [联系我们](https://docs.xray.cool/help/index.md) - [编写环境配置](https://docs.xray.cool/plugins/Environment.md) - [简介](https://docs.xray.cool/plugins/Index.md): 在开发者文档中,我们将详细介绍如何编写POC和指纹识别规则 - [快速开始](https://docs.xray.cool/plugins/QuickStart.md): 在开发者文档中,我们将详细介绍如何编写POC和指纹识别规则 - [文档使用方法](https://docs.xray.cool/plugins/Usage.md): 欢迎阅读我们的文档!本文档将指导您了解如何有效地使用我们的文档以便快速上手 - [编写模板](https://docs.xray.cool/plugins/go/Index.md) - [最佳实践](https://docs.xray.cool/plugins/practice/finger/Practice.md): 本文将展示在不同场景下的最佳编写实践和一些编写规范 - [编写模板](https://docs.xray.cool/plugins/practice/finger/Template.md): 指纹编写模版以及对应的字段解释及规范 - [版本指纹最佳实践](https://docs.xray.cool/plugins/practice/finger/VersionPractice.md): 本文将展示版本指纹的最佳编写实践、规范和示例模版 - [poc实例](https://docs.xray.cool/plugins/practice/poc/Example.md): 本次编写指南将拿一个实际的漏洞(CVE-2021-43798)来举例,讲解如何将其变为高质量POC - [文件上传](https://docs.xray.cool/plugins/practice/poc/FileUpload.md) - [简述](https://docs.xray.cool/plugins/practice/poc/HighQuality.md): 这篇文章主要对日常审核中常见的一些情况进行了分析和梳理,如果仍有编写不完善的地方,欢迎各位师傅提出意见并进行补全 - [目录穿越/任意文件读取](https://docs.xray.cool/plugins/practice/poc/PathTraversal.md) - [常见问题](https://docs.xray.cool/plugins/practice/poc/Question.md) - [URL重定向](https://docs.xray.cool/plugins/practice/poc/Redirect.md) - [远程代码执行](https://docs.xray.cool/plugins/practice/poc/RemoteCodeExecution.md): 这个类型的poc所匹配的内容非常不固定,这里给出在验证中大致需要注意的问题 - [远程命令执行](https://docs.xray.cool/plugins/practice/poc/RemoteCommandExecution.md) - [SQL注入](https://docs.xray.cool/plugins/practice/poc/SQLInjection.md) - [SSRF](https://docs.xray.cool/plugins/practice/poc/SSRF.md) - [编写模板](https://docs.xray.cool/plugins/practice/poc/Template.md) - [未授权访问/越权](https://docs.xray.cool/plugins/practice/poc/Unauth.md): 这个类型的poc所匹配的内容非常不固定,这里给出在验证中大致需要注意的问题 - [弱口令/默认口令](https://docs.xray.cool/plugins/practice/poc/WeakPassword.md) - [XSS](https://docs.xray.cool/plugins/practice/poc/XSS.md) - [YAML插件修复手册](https://docs.xray.cool/plugins/yaml/Fix.md) - [格式介绍](https://docs.xray.cool/plugins/yaml/Format.md): 目前xray的POC主要是使用YAML进行编写,所以我们在学习编写POC前,先来学习一下YAML - [decToHex](https://docs.xray.cool/plugins/yaml/TypeFunc/example/baseConversion/decToHex.md): `decToHex`函数用于将整数值从十进制转换为十六进制表示 - [bcontains](https://docs.xray.cool/plugins/yaml/TypeFunc/example/bytes/bcontains.md): `bcontains`函数主要是用来对字节流(bytes)中的数据进行匹配,并通过返回一个`bool`的结果来判断是否匹配成功 - [bformat](https://docs.xray.cool/plugins/yaml/TypeFunc/example/bytes/bformat.md): `bformat`主要是用来对`bytes`类型的数据进行进制转换,并可以自定义输出样式 - [bload](https://docs.xray.cool/plugins/yaml/TypeFunc/example/bytes/bload.md): `bload`函数用于将字符串数据按照特定的编码规则转换为字节序列,支持自定义的编码基数、对齐、前缀以及步进参数 - [bstartsWith](https://docs.xray.cool/plugins/yaml/TypeFunc/example/bytes/bstartWith.md): `bstartsWith`函数主要是用来判断一个 b1 是否由 b2 开头,返回 bool 类型结果。与 startsWith 不同的是,bcontains 是字节流(bytes)的查找 - [ibcontains](https://docs.xray.cool/plugins/yaml/TypeFunc/example/bytes/ibcontains.md): `ibcontains`函数主要是用来对字节流(bytes)中的数据进行匹配,并通过返回一个`bool`的结果来判断是否匹配成功,与bcontains不同的是,ibcontains 忽略大小写 - [gzip](https://docs.xray.cool/plugins/yaml/TypeFunc/example/compress/gzip.md): `gzip`函数用于对字符串或字节序列数据进行GZIP压缩。该函数可以接受字符串或字节序列作为输入,并返回一个GZIP压缩后的字符串。 - [zipSlip](https://docs.xray.cool/plugins/yaml/TypeFunc/example/compress/zipSlip.md): `zipSlip`函数主要是用来自定义生成zip文件 - [print](https://docs.xray.cool/plugins/yaml/TypeFunc/example/debug/print.md): `print`函数: 方便在调试场景下打印信息 - [base64](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/base64.md): `base64`函数主要是用来将字符串或 bytes 进行 base64 编码 - [base64Decode](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/base64Decode.md): `base64Decode`函数主要是用来将字符串或 bytes 进行 base64 解码,对URL safe 编码做了支持 - [faviconHash](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/faviconHash.md): `faviconHash`函数主要是用来将字符串或 bytes 进行 faviconHash 编码,参考:[iconhash](https://github.com/Becivells/iconhash) - [hex](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/hex.md): `hex`函数主要是用来将所给字符串或者字节数组进行十六进制编码,并输出编码后的字符串 - [hexDecode](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/hexDecode.md): `hexDecode`函数主要是用来将所给字符串或者字节数组进行十六进制解码,并输出解码后的字符串 - [htmlEscape](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/htmlEscape.md): `htmlEscape`函数主要是用来将所给字符串或者字节数组进行 html 实体编码,并输出编码后的字符串 - [htmlUnescape](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/htmlUnescape.md): `htmlUnescape`函数主要是用来将所给字符串或者字节数组进行 html 实体解码,并输出解码后的字符串 - [urldecode](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/urldecode.md): `urldecode`函数主要是用来将字符串或 bytes 进行 urldecode 解码 - [urlencode](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/urlencode.md): `urlencode`函数主要是用来将字符串或 bytes 进行 urlencode 编码 - [urlencodeall](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encode/urlencodeall.md): `urlencodeall`函数主要是用来将字符串或 bytes 进行 urlencode 编码, 结果为全字符编码 - [aesDecrypt](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encryption/aes.md): `aesDecrypt`函数主要是用来对aes的数据进行解密 - [hmacSha](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encryption/hmacSha.md): `hmacSha`函数主要是用来将指定字符串或 bytes 进行 hmac_sha 系列计算 - [md5](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encryption/md5.md): `md5`函数主要是用来计算字符串的md5值 - [rsaPKCS1v15](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encryption/rsaPKCS1v15.md) - [sha](https://docs.xray.cool/plugins/yaml/TypeFunc/example/encryption/sha.md): `sha`函数主要是用来将指定字符串或 bytes 进行 sha 系列计算 - [get404Path](https://docs.xray.cool/plugins/yaml/TypeFunc/example/http/get404path.md): `get404Path`函数主要是用来获取一个长度为8的随机字符串,当作404页面的路径。之所以做成一个函数,是因为使用这个函数可以保证一个目标将仅拥有一个404path,这样便于使用cache,降低发包,提高效率。 - [icon/getIconContent](https://docs.xray.cool/plugins/yaml/TypeFunc/example/other/getIconContent.md): `getIconContent`函数主要是用来在响应中获取icon地址,然后访问这个icon获取其字节流数据 - [isValidPage](https://docs.xray.cool/plugins/yaml/TypeFunc/example/other/isValidPage.md): `isValidPage` 函数用于验证给定的网页是否有效,通过检查 HTTP 响应的特定特征和与已知404页面的相似度 - [zipSlip](https://docs.xray.cool/plugins/yaml/TypeFunc/example/other/zipSlip.md): `zipSlip`函数主要是用来自定义生成zip文件 - [randomInt](https://docs.xray.cool/plugins/yaml/TypeFunc/example/random/randomInt.md): `randomInt`函数主要是用来生成两个范围内的随机数 - [randomLowercase](https://docs.xray.cool/plugins/yaml/TypeFunc/example/random/randomLowercase.md): `randomLowercase`函数主要是用来生成指定长度的小写字母组成的随机字符串 - [uuid](https://docs.xray.cool/plugins/yaml/TypeFunc/example/random/uuid.md): `uuid`函数主要是用来生成随机uuid的函数 - [bmatches](https://docs.xray.cool/plugins/yaml/TypeFunc/example/regex/bmatches.md): `bmatches`函数主要是用来使用正则表达式 s1 来匹配 b1,并返回 bool 类型匹配结果的 - [bsubmatch](https://docs.xray.cool/plugins/yaml/TypeFunc/example/regex/bsubmatch.md): `bsubmatch`函数主要是用来使用正则表达式 s1 来匹配 s2,返回 map[string]string 类型结果,**注**:只返回具名的正则匹配结果 `(?P…)` 格式 - [matches](https://docs.xray.cool/plugins/yaml/TypeFunc/example/regex/matches.md): `matches`函数主要是用来使用正则表达式 s1 来匹配 s2,并返回 bool 类型匹配结果的 - [submatch](https://docs.xray.cool/plugins/yaml/TypeFunc/example/regex/submatch.md): `submatch`函数主要是用来使用正则表达式 s1 来匹配 s2,返回 map[string]string 类型结果,**注**:只返回具名的正则匹配结果 `(?P…)` 格式 - [wait](https://docs.xray.cool/plugins/yaml/TypeFunc/example/reverse/reverse.md): `wait`函数主要是用来告诉扫描器要等待多长时间,并返回是否在该时间内获得了信息 - [basename](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/basename.md): `basename`函数主要是用来返回 URL 的最后一个路径的名称 - [contains](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/contains.md): `contains`函数主要是用来对字符串中的数据进行匹配,并通过返回一个`bool`的结果来判断是否匹配成功 - [dir](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/dir.md): `dir`函数主要是用来返回 URL 的路径 - [format](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/format.md): `format`函数主要用于格式化字符串,可以通过指定的对齐字符、前缀以及步进参数来调整字符串的显示样式。 - [icontains](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/icontains.md): `icontains`函数主要是用来对字符串中的数据进行匹配,并通过返回一个`bool`的结果来判断是否匹配成功,与contains不同的是,icontains 忽略大小写 - [printable](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/printable.md): `printable`函数主要是用来将 string 中的非 unicode 编码字符去掉 - [replaceAll](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/replaceAll.md): `replaceAll`函数主要是用来将 string 中的 old 替换为 new,返回替换后的 string - [rev](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/rev.md): `rev`函数主要是用来 string 反向输出,主要用于验证命令执行 - [substr](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/substr.md): `substr`函数主要是用来对目标字符串进行截取 - [toUintString](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/toUintString.md): `toUintString`函数主要是用来将传入的字符串按 direction 读取为一个整数,返回该整数的字符串形式 - [upper](https://docs.xray.cool/plugins/yaml/TypeFunc/example/string/upper.md): `upper`函数主要是用来 string 中的小写字母转换成大写 - [now](https://docs.xray.cool/plugins/yaml/TypeFunc/example/time/now.md): `now`函数主要是用来返回当前的时间,返回类型为Timestamp - [sleep](https://docs.xray.cool/plugins/yaml/TypeFunc/example/time/sleep.md): `sleep`函数主要是用来暂停执行等待指定的秒数的,一般用在下一个请求需要等待上一个请求的处理时使用 - [timeConvert](https://docs.xray.cool/plugins/yaml/TypeFunc/example/time/timeConvert.md): `timeConvert`主要是用来对时间的格式进行转换的函数,可以将指定时间戳转换成自定义格式的字符串。本质上是使用 golang 的 time 包提供的 Format 方法 - [versionEqual](https://docs.xray.cool/plugins/yaml/TypeFunc/example/version/versionEqual.md): `versionEqual`函数主要是用来比较一个**版本字符串**是否等于所给出的**版本字符串** - [versionGreater](https://docs.xray.cool/plugins/yaml/TypeFunc/example/version/versionGreater.md): `versionGreater`函数主要是用来比较一个**版本字符串**是否大于所给出的**版本字符串** - [versionIn](https://docs.xray.cool/plugins/yaml/TypeFunc/example/version/versionIn.md): `versionIn`函数主要是用来比较所给出的版本字符串是否在给出的版本范围之内 - [versionLess](https://docs.xray.cool/plugins/yaml/TypeFunc/example/version/versionLess.md): `versionLess`函数主要是用来比较一个**版本字符串**是否小于所给出的**版本字符串** - [javaGadget](https://docs.xray.cool/plugins/yaml/TypeFunc/example/ysoGadget/javaGadget.md): `javaGadget`函数主要是用来使用给出的 payload 内容以及类型生成对应的 java 反序列化数据 - [reverseType](https://docs.xray.cool/plugins/yaml/TypeFunc/exampleType/reverse.md): `reverseType`类型主要是返回了反连平台提供的各个信息,现假设变量名为 `reverse`(需要先使用 `newReverse()` 生成实例) - [Timestamp](https://docs.xray.cool/plugins/yaml/TypeFunc/exampleType/timestamp.md): `Timestamp`类型实际是google.protobuf.Timestamp类型,为cel表达式本身自带的类型 - [YAML插件的构成](https://docs.xray.cool/plugins/yaml/YAMLScriptV2.md) - [YAML插件的参数](https://docs.xray.cool/plugins/yaml/YAMLTypeFunc.md): 该文档会简单介绍所有的数据类型以及支持的函数 - [信息部分 - detail](https://docs.xray.cool/plugins/yaml/advanced/Details.md) - [头疼的转义](https://docs.xray.cool/plugins/yaml/advanced/Escape.md) - [扫描路径 - path](https://docs.xray.cool/plugins/yaml/advanced/Path.md) - [全局变量载荷 - payload](https://docs.xray.cool/plugins/yaml/advanced/Payloads.md) - [漏洞规则部分 - rules](https://docs.xray.cool/plugins/yaml/advanced/Rules.md): 此处对rule中出现的一些特性进行说明和分析 - [自定义变量 - set](https://docs.xray.cool/plugins/yaml/advanced/Set.md): Set的作用只为定义变量,在set中我们能对变量进行基础的运算和函数的使用 - [xray 2.0 系列通用参数](https://docs.xray.cool/tools/BasicFunc.md) - [概览](https://docs.xray.cool/tools/Introduction.md) - [运行策略组](https://docs.xray.cool/tools/group.md) - [使用教程](https://docs.xray.cool/tools/rad/Tutorials.md): 一款专为安全扫描而生的浏览器爬虫 - [基本介绍](https://docs.xray.cool/tools/xapp/BasicIntroduction.md): 专注于web指纹识别的高效工具 - [ChangeLog](https://docs.xray.cool/tools/xapp/ChangeLog.md): xapp的更新日志 - [快速开始](https://docs.xray.cool/tools/xapp/QuickStart.md) - [指纹打分](https://docs.xray.cool/tools/xapp/Score.md) - [ChangeLog](https://docs.xray.cool/tools/xlint/ChangeLog.md): xlint的更新日志 - [快速开始](https://docs.xray.cool/tools/xlint/QuickStart.md) - [基本功能](https://docs.xray.cool/tools/xpoc/BasicFunction.md) - [基本介绍](https://docs.xray.cool/tools/xpoc/BasicIntroduction.md): 为供应链漏洞扫描设计的快速应急响应工具 - [ChangeLog](https://docs.xray.cool/tools/xpoc/ChangeLog.md): xpoc的更新日志 - [快速开始](https://docs.xray.cool/tools/xpoc/QuickStart.md) - [基本介绍](https://docs.xray.cool/tools/xray/BasicIntroduction.md): xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成 - [配置文件](https://docs.xray.cool/tools/xray/Configuration.md): xray config.yaml 介绍 - [提交反馈](https://docs.xray.cool/tools/xray/Feedback.md) - [常见问题](https://docs.xray.cool/tools/xray/QA.md): 使用xray可能会遇到的一些问题 - [快速开始](https://docs.xray.cool/tools/xray/QuickStart.md): xray 为单文件二进制文件,无依赖,也无需安装,下载后直接使用 - [开始扫描](https://docs.xray.cool/tools/xray/Scanning.md): xray的扫描方式分为被动扫描、主动扫描和服务扫描 - [版本对比](https://docs.xray.cool/tools/xray/VersionComparison.md) - [使用 awvs爬虫 进行联动](https://docs.xray.cool/tools/xray/advanced/awvs.md) - [使用 Burp 进行联动](https://docs.xray.cool/tools/xray/advanced/burp.md) - [部署反连平台](https://docs.xray.cool/tools/xray/advanced/reverse.md): xray 的反连平台部署方案 - [使用反连平台挖掘和验证SSRF](https://docs.xray.cool/tools/xray/advanced/ssrf.md) - [使用webhook实现自动告警](https://docs.xray.cool/tools/xray/advanced/webhook.md) ## Optional - [官网](https://xray.cool/) - [社区](https://stack.chaitin.com/tool/detail/1)