Yakit入门指南:MITM代理、流量过滤、标记替换与热加载功能详解
字数 2665 2025-10-01 14:05:45

Yakit 核心功能实战教学指南

一、 工具简介与安装

Yakit 是一款集成化的安全测试平台,由 Yaklang 团队开发。它提供了从基础抓包到高级漏洞挖掘的一系列功能,旨在提升安全测试的效率。

  • 官方地址:https://yaklang.com/
  • 安装:访问官网直接下载安装包,完成安装后启动即可使用。

二、 MITM 中间人代理与劫持

MITM(Man-in-the-Middle)是 Yakit 的核心功能之一,用于拦截、查看和修改 HTTP/HTTPS 流量。

1. 免配置启动(推荐新手)

此模式极大简化了抓取 HTTPS 流量的配置过程。

  • 路径手工测试 -> MITM交互式劫持
  • 操作
    1. 进入劫持页面后,点击 免配置启动
    2. 在弹出的设置界面中输入目标网址。
    3. Yakit 将自动启动一个新的 Chrome 浏览器会话,该会话的所有流量都会被代理。
  • 核心优势:在此模式下,无需手动安装 CA 证书即可解密和抓取 HTTPS 流量,极大降低了使用门槛。

2. 传统证书安装(可选)

如果需要代理系统或其他浏览器中的流量,仍需安装 CA 证书。

  • 路径:在 MITM 劫持页面的 高级配置 中下载证书。
  • 操作
    1. 下载的证书文件后缀为 .pem,需手动重命名为 .crt 后缀。
    2. 双击重命名后的证书文件,根据系统向导将其安装到“受信任的根证书颁发机构”存储中。

三、 实用功能配置

1. 界面主题切换

Yakit 支持暗黑模式以保护视力。

  • 路径设置 -> 模式切换 -> 开启 暗色
  • 特性:修改后立即生效,无需重启软件。

2. 流量过滤

在复杂环境中抓包时,过滤功能能有效屏蔽无关流量,聚焦目标。

  • 操作
    1. 在 MITM 劫持页面,点击 过滤器 按钮。
    2. 在弹出的界面中,输入过滤条件(如 hostname==target.com)。
    3. 确认后,抓包界面将只显示符合条件的数据包。

四、 标记与替换功能

1. 标记 (Mark)

用于对测试过程中发现的重要请求或漏洞进行高亮标记,便于后续快速定位和回顾。

  • 操作:在数据包历史记录中,选中目标请求,点击标记颜色(如蓝色)即可完成标记。

2. 替换 (Replace) - 导入 HAE 规则

此功能可实现请求/响应内容的自动修改,类似于 Burp Suite 的 Match & Replace,并能导入著名的 HAE 规则集。

  • 规则管理入口:在 MITM 劫持页面的 内容规则 选项下,有默认配置导入配置导出配置三个操作项。
  • 导入官方默认规则
    1. 点击 默认配置
    2. 在弹出的对话框中,先点击 ① 使用默认配置,再点击 ② 导入。即可成功导入 55 条官方规则。
  • 导入 HAE 规则
    1. 规则转换:HAE 规则需要先转换为 Yakit 识别的 JSON 格式。可使用 GitHub 上的转换工具:youmulijiang/HaeToYakit
    2. 运行提供的脚本,将 HAE 规则文件转换为 Yakit 格式。
    3. 内容规则 处选择 导入配置,将转换后的 JSON 文件导入即可。
  • 自定义规则
    1. 点击 新增规则
    2. 配置规则细节,包括匹配条件(如域名、URL、关键词)和替换动作(如替换请求头、正文等)。
  • 规则共享:使用 导出配置 功能可将当前规则集导出为 JSON 文件,分享给团队成员。

五、 Web Fuzzer 与爆破

Yakit 的 Web Fuzzer 模块集成了重放和爆破功能,其核心是 Fuzz Tag 语法。

1. Fuzz Tag 基础

Fuzz Tag 是一种用于生成动态 payload 的语法结构,格式为 {{标签名(参数)}}

  • 示例{{randint(1,100)}} 会生成 1 到 100 之间的随机整数。

2. 爆破实战方法

a) 直接插入 Fuzz Tag

在需要爆破的参数位置(如 URL、请求体),直接输入 Fuzz Tag。

  • 示例:在 ID 参数处输入 {{int(1-10)}},发送请求后,Yakit 会自动爆破 1 到 10 的所有值。

b) 右键插入 Fuzz Tag

在输入框右键,选择 插入标签/字典,这是更便捷的方式。

  • 可插入类型
    • 空字节{{hexd(00)}},用于测试空字节截断等漏洞。
    • 字典文件:从本地加载字典文件,效果同 Burp Intruder 的 payload 类型。
    • 加密标签:支持组合标签进行编码加密。
      • 示例{{base64enc({{int(1-10)}})}},会先将 1-10 的数字转换为字符串,再进行 Base64 编码。

3. 重要提示

  • 文档过时警告:官方文档中的部分旧版 Fuzz Tag(如 {{x}} 已无法使用,应以实际软件内支持的标签为准。
  • 学习资源:欲了解更多 Fuzz Tag 的用法和样例,请参考 《Fuzz Tag Playbook》

六、 热加载 (Hot-Reload) 高级功能

热加载是 Yakit 的一项强大特性,允许用户编写自定义的 Yaklang 函数来扩展 Web Fuzzer 的能力,实现高度定制化的 Payload 生成和处理。

1. 核心概念

  • 定义:在 Web Fuzzer 运行过程中,动态加载并执行用户编写的 Yaklang 函数,无需重启整个程序或模块。
  • 本质:创建自定义的、可复用的 Fuzz Tag。

2. 调用方式

  • 无参数函数{{函数名()}}
  • 带参数函数{{函数名(参数)}}

3. 编写第一个热加载函数

  1. 在 Web Fuzzer 模块中找到热加载代码编辑区。
  2. 编写一个符合 Yaklang 语法的函数。
    • 示例:创建一个简单的 Base64 编码函数。
    // 函数名:basetest
    // 参数:s (要编码的字符串)
    fn basetest(s) {
        return base64.Encode(s)
    }
    
  3. 保存或加载函数。
  4. 在 Fuzzer 的 Payload 位置使用 {{basetest(test)}} 即可调用该函数。

4. 注意事项

官方文档和社区示例可能存在未及时更新的情况,部分代码可能需要根据最新版的 Yaklang 语法进行调整。此功能需要一定的编程基础,建议从简单函数开始实践。


总结:本文档涵盖了 Yakit 的安装、核心代理功能、流量处理、规则利用、爆破技巧及高级扩展功能,依据提供的链接内容提取关键知识点汇编而成,可作为入门和深度使用的参考指南。

Yakit 核心功能实战教学指南 一、 工具简介与安装 Yakit 是一款集成化的安全测试平台,由 Yaklang 团队开发。它提供了从基础抓包到高级漏洞挖掘的一系列功能,旨在提升安全测试的效率。 官方地址 :https://yaklang.com/ 安装 :访问官网直接下载安装包,完成安装后启动即可使用。 二、 MITM 中间人代理与劫持 MITM(Man-in-the-Middle)是 Yakit 的核心功能之一,用于拦截、查看和修改 HTTP/HTTPS 流量。 1. 免配置启动(推荐新手) 此模式极大简化了抓取 HTTPS 流量的配置过程。 路径 : 手工测试 -> MITM交互式劫持 操作 : 进入劫持页面后,点击 免配置启动 。 在弹出的设置界面中输入目标网址。 Yakit 将自动启动一个 新的 Chrome 浏览器会话 ,该会话的所有流量都会被代理。 核心优势 :在此模式下, 无需手动安装 CA 证书 即可解密和抓取 HTTPS 流量,极大降低了使用门槛。 2. 传统证书安装(可选) 如果需要代理系统或其他浏览器中的流量,仍需安装 CA 证书。 路径 :在 MITM 劫持页面的 高级配置 中下载证书。 操作 : 下载的证书文件后缀为 .pem ,需 手动重命名为 .crt 后缀。 双击重命名后的证书文件,根据系统向导将其安装到“受信任的根证书颁发机构”存储中。 三、 实用功能配置 1. 界面主题切换 Yakit 支持暗黑模式以保护视力。 路径 : 设置 -> 模式切换 -> 开启 暗色 特性 :修改后立即生效,无需重启软件。 2. 流量过滤 在复杂环境中抓包时,过滤功能能有效屏蔽无关流量,聚焦目标。 操作 : 在 MITM 劫持页面,点击 过滤器 按钮。 在弹出的界面中,输入过滤条件(如 hostname==target.com )。 确认后,抓包界面将只显示符合条件的数据包。 四、 标记与替换功能 1. 标记 (Mark) 用于对测试过程中发现的重要请求或漏洞进行高亮标记,便于后续快速定位和回顾。 操作 :在数据包历史记录中,选中目标请求,点击标记颜色(如蓝色)即可完成标记。 2. 替换 (Replace) - 导入 HAE 规则 此功能可实现请求/响应内容的自动修改,类似于 Burp Suite 的 Match & Replace,并能导入著名的 HAE 规则集。 规则管理入口 :在 MITM 劫持页面的 内容规则 选项下,有 默认配置 、 导入配置 、 导出配置 三个操作项。 导入官方默认规则 : 点击 默认配置 。 在弹出的对话框中,先点击 ① 使用默认配置 ,再点击 ② 导入 。即可成功导入 55 条官方规则。 导入 HAE 规则 : 规则转换 :HAE 规则需要先转换为 Yakit 识别的 JSON 格式。可使用 GitHub 上的转换工具: youmulijiang/HaeToYakit 。 运行提供的脚本,将 HAE 规则文件转换为 Yakit 格式。 在 内容规则 处选择 导入配置 ,将转换后的 JSON 文件导入即可。 自定义规则 : 点击 新增规则 。 配置规则细节,包括匹配条件(如域名、URL、关键词)和替换动作(如替换请求头、正文等)。 规则共享 :使用 导出配置 功能可将当前规则集导出为 JSON 文件,分享给团队成员。 五、 Web Fuzzer 与爆破 Yakit 的 Web Fuzzer 模块集成了重放和爆破功能,其核心是 Fuzz Tag 语法。 1. Fuzz Tag 基础 Fuzz Tag 是一种用于生成动态 payload 的语法结构,格式为 {{标签名(参数)}} 。 示例 : {{randint(1,100)}} 会生成 1 到 100 之间的随机整数。 2. 爆破实战方法 a) 直接插入 Fuzz Tag 在需要爆破的参数位置(如 URL、请求体),直接输入 Fuzz Tag。 示例 :在 ID 参数处输入 {{int(1-10)}} ,发送请求后,Yakit 会自动爆破 1 到 10 的所有值。 b) 右键插入 Fuzz Tag 在输入框右键,选择 插入标签/字典 ,这是更便捷的方式。 可插入类型 : 空字节 : {{hexd(00)}} ,用于测试空字节截断等漏洞。 字典文件 :从本地加载字典文件,效果同 Burp Intruder 的 payload 类型。 加密标签 :支持组合标签进行编码加密。 示例 : {{base64enc({{int(1-10)}})}} ,会先将 1-10 的数字转换为字符串,再进行 Base64 编码。 3. 重要提示 文档过时警告 :官方文档中的部分旧版 Fuzz Tag(如 {{x}} 已无法使用,应以实际软件内支持的标签为准。 学习资源 :欲了解更多 Fuzz Tag 的用法和样例,请参考 《Fuzz Tag Playbook》 。 六、 热加载 (Hot-Reload) 高级功能 热加载是 Yakit 的一项强大特性,允许用户编写自定义的 Yaklang 函数来扩展 Web Fuzzer 的能力,实现高度定制化的 Payload 生成和处理。 1. 核心概念 定义 :在 Web Fuzzer 运行过程中,动态加载并执行用户编写的 Yaklang 函数,无需重启整个程序或模块。 本质 :创建自定义的、可复用的 Fuzz Tag。 2. 调用方式 无参数函数 : {{函数名()}} 带参数函数 : {{函数名(参数)}} 3. 编写第一个热加载函数 在 Web Fuzzer 模块中找到热加载代码编辑区。 编写一个符合 Yaklang 语法的函数。 示例 :创建一个简单的 Base64 编码函数。 保存或加载函数。 在 Fuzzer 的 Payload 位置使用 {{basetest(test)}} 即可调用该函数。 4. 注意事项 官方文档和社区示例可能存在未及时更新的情况,部分代码可能需要根据最新版的 Yaklang 语法进行调整。此功能需要一定的编程基础,建议从简单函数开始实践。 总结 :本文档涵盖了 Yakit 的安装、核心代理功能、流量处理、规则利用、爆破技巧及高级扩展功能,依据提供的链接内容提取关键知识点汇编而成,可作为入门和深度使用的参考指南。