Skip to content

Commit

Permalink
[add] 添加证书相关信息
Browse files Browse the repository at this point in the history
  • Loading branch information
Jarcis-cy committed Jan 19, 2024
1 parent fb26a03 commit 77552cd
Showing 1 changed file with 74 additions and 57 deletions.
131 changes: 74 additions & 57 deletions guide/yaml/yaml_type_func.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,61 +12,7 @@ xray 支持所有CEL文档中的类型,同时还注入了几种特殊的类型

其中注入的 request 和 response 类型是随着 `transport` 对应的值进行改变的。

### 基本类型

#### addrType

addrType 类型包含字段如下, 设变量名为 `addr`

| 变量名 | 类型 | 说明 | 适用版本 |
|------------------|----------|-----------------------------------------------------------|--------------|
| `addr.transport` | `string` | tranport | xray ≥ 1.8.4 |
| `addr.addr` | `string` | 目的地址, 获取失败时返回空字符串,形如: `192.0.2.1:25`, `[2001:2001::1]:80` | xray ≥ 1.8.4 |
| `addr.port` | `string` | 端口号, 获取失败时返回 `""` | xray ≥ 1.8.4 |

#### connInfoType

connInfoType 类型包含字段如下, 设变量名为 `conn`

| 变量名 | 类型 | 说明 | 适用版本 |
|--------------------|------------|--------|--------------|
| `conn.source` | `addrType` | 源地址信息 | xray ≥ 1.8.4 |
| `conn.destination` | `addrType` | 目的地址信息 | xray ≥ 1.8.4 |

#### urlType

urlType 类型包含的字段如下, 设变量名为 `url`, 以 `http://example.com:8080/a?c=d#x=y` 为例:

| 变量名 | 类型 | 说明 | 适用版本 |
|----------------|----------|------------------------------------|--------------|
| `url.scheme` | `string` | url 的 scheme, 示例为 `"http"` | xray ≥ 1.8.4 |
| `url.domain` | `string` | url 的域名,示例例为 `"example.com"` | xray ≥ 1.8.4 |
| `url.host` | `string` | url 的主机名,示例为 `"example.com:8080"` | xray ≥ 1.8.4 |
| `url.port` | `string` | url 的 port,注意这里也是字符串。 示例为 `"8080"` | xray ≥ 1.8.4 |
| `url.path` | `string` | url 的 path, 示例为 `"/a"` | xray ≥ 1.8.4 |
| `url.query` | `string` | url 的 query, 示例为 `"c=d"` | xray ≥ 1.8.4 |
| `url.fragment` | `string` | url 的锚点,示例为 `"x=y"` | xray ≥ 1.8.4 |

#### reverseType

reverseType 类型包含字段如下, 设变量名为 `reverse`(需要先使用 `newReverse()` 生成实例)

| 变量名 | 类型 | 说明 | 适用版本 |
|---------------------------------|---------------------------|-------------------------------|--------------|
| `reverse.url` | `urlType` | 反连平台的 url | xray ≥ 1.8.4 |
| `reverse.domain` | `string` | 反连平台的域名 | xray ≥ 1.8.4 |
| `reverse.rmi` | `urlType` | 反连平台的rmi协议url | xray ≥ 1.9.4 |
| `reverse.ip` | `string` | 反连平台的 ip 地址 | xray ≥ 1.8.4 |
| `reverse.is_domain_name_server` | `bool` | 反连平台的 domain 是否同时是 nameserver | xray ≥ 1.8.4 |
| `reverse.wait(timeout)` | `func (timeout int) bool` | 等待 timeout 秒,并返回是否在改时间内获得了信息 | xray ≥ 1.8.4 |

> 参数详情介绍:[🔎详情](guide/poc/exampleType/reverse.md)
#### Timestamp

Timestamp 类型实际是google.protobuf.Timestamp类型,为cel表达式本身自带的类型,其本身包含了非常多的方法,详情可查看:[Timestamp](guide/poc/exampleType/timestamp.md)

### tcp request and response
### TCP请求响应

其中 request 包含的字段如下:

Expand All @@ -81,7 +27,7 @@ response 包含的字段如下:
| `response.conn` | `connInfoType` | 连接相关信息 | xray ≥ 1.8.4 |
| `response.raw` | `[]byte` | 原始响应 | xray ≥ 1.8.4 |

### udp request and response
### UDP请求响应

其中 request 包含的字段如下:

Expand All @@ -96,7 +42,7 @@ response 包含的字段如下:
| `response.conn` | `connInfoType` | 连接相关信息 | xray ≥ 1.8.4 |
| `response.raw` | `[]byte` | 原始响应 | xray ≥ 1.8.4 |

### http request and response
### HTTP请求响应

其中 request 包含的字段如下:

Expand Down Expand Up @@ -125,6 +71,77 @@ response 包含的字段如下:
| `response.latency` | `int` | 响应的延迟时间,可以用于 sql 时间盲注的判断,单位毫秒 (ms) | xray ≥ 1.8.4 |
| `response.title` | `[]byte` | 返回包的Title,因为是一个字节流(bytes)而非字符串,后面判断的时候需要使用字节流相关的方法 | xray ≥ 1.8.5 |
| `response.title_string` | `string` | 返回包的Title,是一个字符串 | xray ≥ 1.8.5 |
| `response.cert` | `CERTType` | 自定义类型CERTType, 请查看下方 CERTType 的说明 | xpoc ≥ 0.0.8 |
| `response.raw_cert` | `[]byte` | 返回包的证书的原始部分,是一个字节流(bytes) | xpoc ≥ 0.0.8 |
| `response.icon_url` | `string` | 返回包中尝试提取的icon的地址,是一个字符串 | xpoc ≥ 0.0.8 |


### 基本类型

#### addrType

addrType 类型包含字段如下, 设变量名为 `addr`

| 变量名 | 类型 | 说明 | 适用版本 |
|------------------|----------|-----------------------------------------------------------|--------------|
| `addr.transport` | `string` | tranport | xray ≥ 1.8.4 |
| `addr.addr` | `string` | 目的地址, 获取失败时返回空字符串,形如: `192.0.2.1:25`, `[2001:2001::1]:80` | xray ≥ 1.8.4 |
| `addr.port` | `string` | 端口号, 获取失败时返回 `""` | xray ≥ 1.8.4 |

#### connInfoType

connInfoType 类型包含字段如下, 设变量名为 `conn`

| 变量名 | 类型 | 说明 | 适用版本 |
|--------------------|------------|--------|--------------|
| `conn.source` | `addrType` | 源地址信息 | xray ≥ 1.8.4 |
| `conn.destination` | `addrType` | 目的地址信息 | xray ≥ 1.8.4 |

#### urlType

urlType 类型包含的字段如下, 设变量名为 `url`, 以 `http://example.com:8080/a?c=d#x=y` 为例:

| 变量名 | 类型 | 说明 | 适用版本 |
|----------------|----------|------------------------------------|--------------|
| `url.scheme` | `string` | url 的 scheme, 示例为 `"http"` | xray ≥ 1.8.4 |
| `url.domain` | `string` | url 的域名,示例例为 `"example.com"` | xray ≥ 1.8.4 |
| `url.host` | `string` | url 的主机名,示例为 `"example.com:8080"` | xray ≥ 1.8.4 |
| `url.port` | `string` | url 的 port,注意这里也是字符串。 示例为 `"8080"` | xray ≥ 1.8.4 |
| `url.path` | `string` | url 的 path, 示例为 `"/a"` | xray ≥ 1.8.4 |
| `url.query` | `string` | url 的 query, 示例为 `"c=d"` | xray ≥ 1.8.4 |
| `url.fragment` | `string` | url 的锚点,示例为 `"x=y"` | xray ≥ 1.8.4 |

#### reverseType

reverseType 类型包含字段如下, 设变量名为 `reverse`(需要先使用 `newReverse()` 生成实例)

| 变量名 | 类型 | 说明 | 适用版本 |
|---------------------------------|---------------------------|-------------------------------|--------------|
| `reverse.url` | `urlType` | 反连平台的 url | xray ≥ 1.8.4 |
| `reverse.domain` | `string` | 反连平台的域名 | xray ≥ 1.8.4 |
| `reverse.rmi` | `urlType` | 反连平台的rmi协议url | xray ≥ 1.9.4 |
| `reverse.ip` | `string` | 反连平台的 ip 地址 | xray ≥ 1.8.4 |
| `reverse.is_domain_name_server` | `bool` | 反连平台的 domain 是否同时是 nameserver | xray ≥ 1.8.4 |
| `reverse.wait(timeout)` | `func (timeout int) bool` | 等待 timeout 秒,并返回是否在改时间内获得了信息 | xray ≥ 1.8.4 |

> 参数详情介绍:[🔎详情](guide/poc/exampleType/reverse.md)
#### Timestamp

Timestamp 类型实际是google.protobuf.Timestamp类型,为cel表达式本身自带的类型,其本身包含了非常多的方法,详情可查看:[Timestamp](guide/poc/exampleType/timestamp.md)

#### CERTType

CERTType 类型包含的字段如下, 设变量名为 `cert`,以`https://docs.xray.cool`的证书举例:

| 变量名 | 类型 | 说明 | 适用版本 |
|----------------------|-------------|--------------------------------------------------------------------------------------------------|--------------|
| `cert.issuer` | `string` | 证书的颁发机构。用来标识颁发证书的实体或组织。示例:`CN=R3,O=Let's Encrypt,C=US` | xpoc ≥ 0.0.8 |
| `cert.subject` | `string` | 证书的主题,也就是证书持有者的身份信息。示例:`CN=xray.cool` | xpoc ≥ 0.0.8 |
| `cert.dnsnames` | `string` | 证书相关联的 DNS 名称,用于识别证书可以用于验证的服务器或域名。示例:`docs.xray.cool,download.xray.cool,poc.xray.cool,xray.cool` | xpoc ≥ 0.0.8 |
| `cert.not_after` | `Timestamp` | 证书的过期时间,用于指定证书有效期的结束日期和时间。示例:`2024-03-25 03:05:36 +0000 UTC`,此处的示例显示的是时间戳在被当成字符串输出时展示的内容 | xpoc ≥ 0.0.8 |
| `cert.not_before` | `Timestamp` | 证书的生效时间,用于指定证书有效期的开始日期和时间。示例:`2023-12-26 03:05:37 +0000 UTC`,同上 | xpoc ≥ 0.0.8 |
| `cert.serial_number` | `string` | 证书的序列号,用于唯一标识一个证书。示例:`342932071325336127920295100216553911823483` | xpoc ≥ 0.0.8 |

## 函数

Expand Down

0 comments on commit 77552cd

Please sign in to comment.