云计算百科
云计算领域专业知识百科平台

Yakit 入门实战指南

Yakit 入门实战指南


前言

本文是一篇真实实战记录,详细记录了从零开始使用 Yakit 进行渗透测试的完整过程,包括:

✅ 完整的工具配置过程(包括遇到的坑和解决方案) ✅ DVWA 登录密码暴力破解实战(完整步骤 + 结果分析) ✅ SQL 注入漏洞检测实战(Fuzzer 批量测试 + 响应分析) ✅ 常见问题和踩坑记录(真实遇到的问题和解决方法)

不同于传统的工具教程,本文记录了:

  • 🔧 真实的配置过程:SwitchyOmega 代理配置、证书安装、抓包失败的排查
  • 💡 实战中的思考:为什么状态码都是 302 但结果不同?响应大小差异说明了什么?
  • 🐛 踩过的坑:Edge 浏览器抓不到包、本地靶场流量被排除、空白页面的含义
  • 🎯 完整的测试流程:从抓包到爆破,从 payload 测试到结果验证

📋 目录

  • 前言
  • Yakit 简介
  • 下载与安装
  • 界面布局介绍
  • 核心功能模块
  • MITM 劫持实战:DVWA 登录密码爆破 ⭐ 重点
  • Web Fuzzer 模糊测试:SQL 注入检测 ⭐ 重点
  • 漏洞扫描实战
  • 常用插件推荐
  • 与 Burp Suite 对比
  • 常见问题与踩坑记录 ⭐ 重点
  • 总结与经验
  • 附录:快捷键速查
  • 参考资料

  • 一、Yakit 简介

    什么是 Yakit?

    Yakit 是由长亭科技开源的一款集成化单兵安全能力平台,类似于 Burp Suite,但功能更强大且完全免费。

    核心特点

    ✅ 完全免费 – 无需破解,所有功能开箱即用 ✅ 中文界面 – 国人开发,中文文档齐全 ✅ 功能强大 – 集成了代理、扫描、爆破、Fuzzer 等多种功能 ✅ 插件丰富 – 内置大量插件,支持自定义 ✅ 持续更新 – 活跃的开源社区,更新频繁

    适用场景

    场景说明
    渗透测试 Web 应用安全测试
    漏洞挖掘 SQL 注入、XSS、SSRF 等漏洞发现
    流量分析 HTTP/HTTPS 请求拦截和分析
    模糊测试 Payload 批量测试
    学习研究 安全技术学习和研究

    二、下载与安装

    1. 下载地址

    官方网站:

    https://www.yaklang.com/

    GitHub 仓库:

    https://github.com/yaklang/yakit

    2. 安装步骤

    Windows 系统:

  • 下载 yakit-windows-xxx.exe 安装包
  • 双击运行安装程序
  • 选择安装路径(建议默认)
  • 完成安装
  • 注意事项:

    • ⚠️ 首次启动可能被杀毒软件拦截,需添加信任
    • ⚠️ 需要管理员权限运行
    • ⚠️ 确保端口 8083-8087 未被占用

    3. 首次启动

    启动 Yakit 后会看到:

    • ✅ 本地 Yak 引擎启动成功
    • ✅ 自动打开浏览器到主界面
    • ✅ 显示欢迎页面

    三、界面布局介绍

    主界面分区

    在这里插入图片描述

    核心功能模块

    模块功能说明
    MITM 交互式劫持 拦截和修改 HTTP/HTTPS 请求
    Web Fuzzer 模糊测试,批量发送 Payload
    插件执行 运行各种安全测试插件
    端口扫描 扫描目标主机开放端口
    漏洞检测 自动化漏洞扫描
    数据包扫描 对历史数据包进行检测
    Codec 编码/解码工具

    四、核心功能模块

    1. MITM(中间人劫持)

    作用:拦截浏览器和服务器之间的所有请求。

    使用场景:

    • 分析网站请求流程
    • 手动修改请求参数测试
    • 重放历史请求

    2. Web Fuzzer(模糊测试)

    作用:对单个请求进行批量 Payload 测试。

    使用场景:

    • SQL 注入测试
    • 参数爆破
    • 字典攻击

    3. 插件执行

    作用:运行预置或自定义的安全测试脚本。

    常用插件分类:

    • 信息收集
    • 漏洞检测
    • 暴力破解
    • 漏洞利用

    4. Codec(编解码)

    支持的编码:

    • Base64
    • URL 编码
    • HTML 实体编码
    • Unicode 编码
    • MD5/SHA1/SHA256 哈希

    五、MITM 劫持实战

    实战案例:DVWA 登录密码爆破

    本节记录一次完整的 Yakit 实战流程:通过 MITM 劫持 + WebFuzzer 暴力破解 DVWA 登录密码。


    步骤 1:启动 Yakit 代理

  • 打开 Yakit
  • 点击左侧 “开启 MITM” 标签
  • 点击右侧橙色按钮 “劫持启动”
  • 确认显示 “劫持 HTTP Request 127.0.0.1:8083”
  • ⚡ 快捷方式:使用 “免配置自动劫持启动” 功能,Yakit 会自动配置系统代理!


    步骤 2:配置浏览器代理

    方法 1:SwitchyOmega 插件(推荐)

    安装插件:

    • Chrome 浏览器:访问 Chrome 网上应用店搜索 “Proxy SwitchyOmega”
    • 点击"添加至 Chrome"安装

    配置代理:

  • 点击浏览器右上角 SwitchyOmega 图标
  • 选择 “选项”
  • 点击 “新建情景模式” → 选择 “代理服务器”
  • 情景模式名称:yakit
  • 填写代理信息:代理协议: HTTP
    代理服务器: 127.0.0.1
    代理端口: 8083
  • 点击 “应用选项” 保存
  • 重要配置:

    • 不代理的地址列表:建议清空(或注释掉 127.0.0.1 和 localhost)
    • 这样才能抓取本地靶场的流量

    启用代理:

    • 点击浏览器右上角 SwitchyOmega 图标
    • 选择 “yakit” 情景模式

    方法 2:免配置启动(最简单)

    如果你使用 Yakit 的 “免配置自动劫持启动” 功能:

    • Yakit 会自动配置系统代理
    • 所有浏览器都会自动走代理
    • 无需手动设置

    步骤 3:访问 DVWA 并抓包

  • 在浏览器中访问 DVWA 登录页面

    http://127.0.0.1/dvwa/login.php

  • 输入测试账号密码:

    • 账号:admin(正确的账号)
    • 密码:1(故意输错)
  • 点击 Login,但不要手动提交

  • 切换到 Yakit 窗口,观察 MITM 界面:

  • 在这里插入图片描述

    • 左侧 “交互劫持” 标签页会显示抓到的请求数量增加
    • 中间表格区域会显示 HTTP 请求列表
  • 找到登录的 POST 请求:POST /dvwa/login.php HTTP/1.1
    • 状态码通常是 302(重定向)
    • 可以点击查看请求详情

  • 步骤 4:发送到 WebFuzzer

  • 在 MITM 请求列表中找到登录的 POST 请求
  • 右键点击该请求
  • 选择 “发送到 WebFuzzer”
  • 自动跳转到 “Web Fuzzer” 标签页
  • 现在你会看到完整的 HTTP 请求:

    POST /dvwa/login.php HTTP/1.1
    Host: 127.0.0.1

    Cookie: security=impossible; PHPSESSID=3i0v2j7j8h6j2845f3niq091na

    username=admin&password=1&Login=Login&user_token=4d5ef4b9e45b36c9b8c36d18a2173bab

    关键参数:最后一行的 password=1 就是我们要爆破的目标!


    步骤 5:配置 Fuzztag 爆破字典

  • 在 WebFuzzer 界面找到最后一行(请求体):

    username=admin&password=1&Login=Login&user_token=…

  • 选中 password=1 中的 1

  • 点击顶部工具栏的 “Fuzztag” 按钮

  • 弹出字典配置窗口,输入常见密码字典:

    admin
    password
    admin123
    123456
    root
    12345678
    test
    qwerty

  • 点击 “确定输入字典”

  • Yakit 会自动生成 Fuzztag 标记,类似:

    username=admin&password={{fuzztag}}&Login=Login&user_token=…

  • 点击左上角橙色的 “发送” 按钮


  • 步骤 6:分析爆破结果

    Fuzzer 开始批量发送请求,右侧会显示结果表格:

    序号Method状态码邮编延迟(ms)Payloads
    1 POST 302 0 39 admin123
    2 POST 302 0 1049 123
    3 POST 302 0 1095 123456
    4 POST 302 0 1128 password

    分析要点:

  • 状态码:所有请求都返回 302 Found(重定向)
    • 登录成功 → 重定向到 index.php
    • 登录失败 → 重定向到 login.php
  • 在这里插入图片描述

  • 查看重定向地址:

    • 点击每一行
    • 在响应区域查看 Location 响应头
    • 如果 Location: index.php → 密码正确!
    • 如果 Location: login.php → 密码错误
  • 响应时间:

    • 第 1 行响应 39ms,其他都是 1000+ms
    • 响应时间差异可以作为判断依据之一

  • 步骤 7:验证成功的密码

    逐个点击结果行,查看响应头:

    HTTP/1.1 302 Found
    Location: index.php ← 登录成功!

    找到成功的密码(本例中是 password)后:

  • 在浏览器中验证:

    • 账号:admin
    • 密码:password
    • 点击 Login
  • 成功登录 DVWA!


  • 实战总结

    ✅ 成功步骤回顾:

  • 启动 Yakit MITM 劫持
  • 配置浏览器代理(SwitchyOmega 或免配置启动)
  • 访问 DVWA 登录页,输入正确账号 + 错误密码
  • 在 Yakit 中抓取登录 POST 请求
  • 发送到 WebFuzzer
  • 配置 Fuzztag 密码字典
  • 批量发送请求
  • 分析响应头的 Location 字段
  • 找到重定向到 index.php 的密码 → 爆破成功!
  • 📊 实战数据:

    • 测试字典:8 个常见密码
    • 发送请求:8 次
    • 成功密码:password
    • 耗时:约 5 秒

    💡 关键技巧:

    • 使用 免配置启动 可以省去手动配置代理的麻烦
    • 抓取本地靶场流量时,要删除 SwitchyOmega 的 127.0.0.1 和 localhost 排除规则
    • 判断爆破成功的标准是 Location 响应头,而不是状态码
    • 响应时间和响应大小的差异也可以作为判断依据

    六、Web Fuzzer 模糊测试

    什么是 Web Fuzzer?

    类似于 Burp Suite 的 Intruder,用于批量发送修改后的请求。


    实战案例:SQL 注入漏洞检测

    本节演示如何使用 WebFuzzer 对 DVWA 的 SQL 注入页面进行测试。


    步骤 1:准备测试环境

  • 确认 DVWA 安全等级为 Low

    • 登录 DVWA
    • 点击左侧菜单 “DVWA Security”
    • 将安全等级设置为 “Low”
    • 点击 “Submit”
  • 访问 SQL 注入测试页面

    http://127.0.0.1/dvwa/vulnerabilities/sqli/

  • 测试正常查询

    • 在 “User ID” 输入框输入:1
    • 点击 “Submit”
    • 应该显示:ID: 1
      First name: admin
      Surname: admin

  • 步骤 2:抓取 SQL 注入测试请求

  • 确保 Yakit MITM 已启动

  • 在浏览器中输入 1 并点击 Submit

  • 切换到 Yakit MITM 标签页

  • 找到 SQL 注入测试的 GET 请求:

    GET /dvwa/vulnerabilities/sqli/?id=1&Submit=Submit HTTP/1.1

    • 状态码:200 OK
    • 这个请求才是真正包含查询结果的
  • 右键点击该请求 → “发送到 WebFuzzer”


  • 步骤 3:配置 SQL 注入测试字典

    在 WebFuzzer 界面,你会看到完整的 GET 请求:

    GET /dvwa/vulnerabilities/sqli/?id=1&Submit=Submit&user_token=… HTTP/1.1
    Host: 127.0.0.1

    关键参数:URL 中的 id=1 就是我们要测试的注入点。

    配置 Fuzztag 字典:

  • 选中 URL 中的 1(id= 后面的数字)
  • 点击 “Fuzztag” 按钮
  • 输入 SQL 注入测试字典:
  • 在这里插入图片描述

    1
    1'
    1"
    1')
    1")
    1'))
    1"))
    1' OR '1'='1
    1" OR "1"="1
    1') OR ('1'='1
    1") OR ("1"="1
    1' OR 1=1–
    1' OR 1=1#
    1' UNION SELECT NULL–
    1') UNION SELECT NULL–
    ' OR '1'='1
    " OR "1"="1
    admin' OR '1'='1
    admin') OR '1'='1

  • 点击 “确定输入字典”
  • 点击 “发送” 开始测试

  • 步骤 4:分析测试结果

    在这里插入图片描述

    Fuzzer 执行后,右侧会显示结果表格:

    序号Method状态码邮编大小延迟(ms)Payloads操作
    1 GET 400 2220 2 1’ OR ‘1’='1
    2 GET 400 2220 1 1’) OR ‘1’='1
    3 GET 400 2220 5 1’ OR 1=1–
    13 GET 302 0 30 1’
    14 GET 302 0 72 1"
    15 GET 302 0 106 1’)
    16 GET 302 0 135 1
    17 GET 302 0 1047 1’)
    18 GET 302 0 1064 1’))
    19 GET 302 0 1251 1’))

    结果分析:

  • 状态码 400 的请求(前 12 行)

    • 复杂的 SQL 注入 payload 被服务器拒绝
    • 可能触发了某些过滤或验证机制
    • 响应大小都是 2220 字节
  • 状态码 302 的请求(第 13-19 行)

    • 简单的闭合测试返回了 302 重定向
    • 响应大小差异明显:30, 72, 106, 135, 1047, 1064, 1251 字节
    • 响应大小不同说明查询返回了不同的数据
  • 重点关注第 17-19 行

    • 响应超过 1000 字节
    • Payload: 1') 和 1'))
    • 可能成功闭合了 SQL 语句

  • 步骤 5:验证注入点

    点击第 19 行(响应最大的那一行),查看响应详情:

    HTTP/1.1 302 Found
    Location: index.php
    Content-Type: text/html; charset=UTF-8

    注意:DVWA 的 SQL 注入测试页面可能返回 302 重定向,这是因为:

    • Session 管理机制
    • 或者测试环境的配置问题

    更可靠的测试方法 — 在浏览器中验证:

  • 在浏览器的 User ID 输入框中输入:1'
  • 点击 Submit
  • 观察页面返回:
    • 如果显示 SQL 错误信息 → 存在注入漏洞
    • 如果显示空白 → SQL 查询失败,但没有显示错误
    • 如果显示正常结果 → 输入被过滤或转义
  • 布尔盲注测试:

    输入: 1' AND '1'='1
    预期: 应该返回 ID: 1 的数据(条件为真)

    输入: 1' AND '1'='2
    预期: 应该返回空白(条件为假)

    如果两次测试结果不同,说明存在布尔盲注漏洞!


    实战经验总结

    💡 关键发现:

  • 响应大小是关键指标

    • 响应大小明显不同,说明 SQL 查询返回了不同的结果
    • 可以作为判断注入成功的依据
  • 不同的闭合方式

    • 简单闭合 ' 可能不够
    • 需要尝试 '), ")), ')) 等不同闭合方式
    • 取决于后端 SQL 语句的结构
  • 状态码和重定向

    • 302 重定向可能是 session 或权限问题
    • 不能只依赖状态码判断
    • 需要结合响应内容和响应大小综合分析
  • WAF 和过滤

    • 复杂的 payload(如 OR 1=1, UNION SELECT)容易被拦截
    • 简单的闭合测试(', ", '))更不容易触发防护
    • 实战中需要绕过 WAF 的技巧
  • 📊 测试数据:

    • 测试字典:19 个 SQL 注入 payload
    • 发送请求:19 次
    • 成功响应:7 个(状态码 302)
    • 异常响应:3 个(响应大小 > 1000 字节)

    🎯 下一步行动:

    • 使用 SQLMap 进一步自动化测试
    • 尝试手工构造 UNION 注入语句
    • 测试其他注入类型(报错注入、时间盲注)

    常用 Fuzztag 标签语法

    Yakit 支持的 Payload 类型:

    标签语法说明示例
    {{int(1-100)}} 整数范围 生成 1 到 100
    {{file(路径)}} 从文件读取 字典文件
    {{x(payload)}} 内置字典 {{x(sql-inject)}}
    {{list(a|b|c)}} 自定义列表 a, b, c
    {{rand(10)}} 随机字符串 10 位随机字符

    实战案例:使用内置 SQL 注入字典

    GET /dvwa/vulnerabilities/sqli/?id={{x(sql-inject)}}&Submit=Submit HTTP/1.1

    Yakit 会自动加载内置的 SQL 注入 Payload 字典并批量测试。


    七、漏洞扫描实战

    1. 插件扫描

    步骤:

  • 点击左侧 “插件”
  • 选择 “基础爬虫” 或 “全端口扫描”
  • 输入目标 URL
  • 点击 “开始执行”
  • 2. 主动扫描

    步骤:

  • 在 MITM 中选中目标请求
  • 右键 → “对该目标进行主动扫描”
  • 选择扫描插件(SQL 注入、XSS、SSRF 等)
  • 开始扫描
  • 3. 查看扫描结果

    扫描完成后:

    • 在 “数据库” → “漏洞与风险” 中查看
    • 点击漏洞可查看详细信息
    • 包括 Payload、响应内容、修复建议

    八、常用插件推荐

    信息收集类

    插件名称功能
    基础爬虫 爬取网站所有链接
    子域名收集 枚举子域名
    目录扫描 扫描敏感目录
    端口扫描 扫描开放端口

    漏洞检测类

    插件名称功能
    SQL 注入检测 自动化 SQL 注入测试
    XSS 检测 跨站脚本漏洞检测
    SSRF 检测 服务端请求伪造
    文件上传检测 文件上传漏洞

    暴力破解类

    插件名称功能
    弱口令检测 常见弱密码爆破
    后台爆破 后台登录爆破

    如何安装插件

  • 点击顶部 “插件商店”
  • 搜索需要的插件
  • 点击 “下载”
  • 插件会自动添加到本地

  • 九、与 Burp Suite 对比

    对比项YakitBurp Suite
    价格 完全免费 专业版需付费($399/年)
    界面语言 中文 英文
    上手难度 简单 中等
    插件生态 丰富(免费) 非常丰富(部分收费)
    功能完整性 覆盖 90% 场景 覆盖所有场景
    性能 较快 较慢(Java)
    社区支持 中文社区活跃 国际社区成熟

    我应该用哪个?

    推荐 Yakit 的情况:

    • ✅ 初学者入门
    • ✅ 预算有限
    • ✅ 中文环境友好
    • ✅ 日常渗透测试

    推荐 Burp Suite 的情况:

    • ✅ 专业渗透测试
    • ✅ 需要特定高级功能
    • ✅ 团队协作
    • ✅ 已有 Burp 使用经验

    最佳实践:两者结合使用,Yakit 作为主力,Burp Suite 作为补充。


    十、 常见问题与踩坑记录


    问题 1:MITM 看不到任何请求

    现象:启动 MITM,配置好代理,但浏览器访问网站时 Yakit 没有任何请求显示。

    原因:

  • 浏览器代理未生效
  • 过滤规则太严格
  • 访问的是本地网站(127.0.0.1 默认被排除)
  • SwitchyOmega 的不代理列表包含了 127.0.0.1 或 localhost(最常见)
  • 解决方案:

    方案 1:修改 SwitchyOmega 不代理列表(推荐)

    这是最常见的问题!

  • 点击浏览器右上角 SwitchyOmega 图标
  • 选择 “选项”
  • 找到你创建的 yakit 情景模式
  • 向下滚动到 “不代理的地址列表”
  • 你会看到:127.0.0.1
    [::1]
    localhost
  • 删除或注释掉这些行(特别是 127.0.0.1 和 localhost)
  • 点击 “应用选项” 保存
  • 刷新浏览器页面
  • 为什么要这样做?

    • 默认情况下,SwitchyOmega 会排除本地地址
    • 这意味着访问 http://127.0.0.1/dvwa 的流量不会走代理
    • Yakit 就抓不到本地靶场的流量

    方案 2:使用免配置启动

    最简单的方法:

  • 在 Yakit 中点击 “免配置自动劫持启动”
  • Yakit 会自动配置系统代理
  • 所有浏览器都会自动走代理,包括本地流量

  • 方案 3:确认代理生效

    测试代理是否正常:

    在浏览器访问这个测试页面:
    http://mitm

    如果能看到 Yakit 的测试页面,说明代理正常。


    方案 4:调整过滤规则
    • MITM 界面 → “过滤器”
    • 暂时关闭所有过滤
    • 或添加例外规则

    方案 5:检查浏览器代理状态

    Edge 浏览器特殊情况:

    • Edge 虽然是 Chromium 内核,但对扩展代理支持不如 Chrome
    • 某些情况下会忽略扩展设置的代理
    • 建议使用 Chrome + SwitchyOmega 或 Yakit 免配置启动

    验证代理是否生效:

    • 点击 SwitchyOmega 图标
    • 确认当前选中的是 “yakit” 情景模式(不是"直接连接"或"系统代理")

    问题 2:Web Fuzzer 标签语法不生效

    现象:设置了 {{int(1-100)}},但只发送了一次请求,没有批量发送。

    原因:标签语法格式错误。

    解决方案:

    正确的标签格式:

    {{int(1-100)}} ✅ 正确
    {{ int(1-100) }} ❌ 错误(多了空格)
    {int(1-100)} ❌ 错误(少了一对大括号)

    常见标签语法:

    {{int(1-100)}} # 整数范围
    {{list(admin|root|test)}} # 列表(注意是竖线 | 不是反斜杠)
    {{file(dict.txt)}} # 文件路径(相对或绝对)
    {{x(sql-inject)}} # 内置字典


    问题 3:插件执行报错

    现象:执行插件时报错 “引擎错误” 或 “脚本执行失败”。

    原因:

  • 插件版本不兼容
  • 目标 URL 格式错误
  • 缺少依赖
  • 解决方案:

    更新插件:

    • 插件商店 → 检查更新
    • 删除旧版本重新安装

    检查 URL 格式:

    ✅ http://localhost/dvwa
    ✅ https://example.com
    ❌ localhost/dvwa (缺少协议)
    ❌ http://localhost:80/ (多余的端口)

    查看详细错误:

    • 点击错误提示查看完整日志
    • 根据错误信息调整参数

    问题 4:扫描结果中没有发现漏洞

    现象:对目标进行扫描,显示"扫描完成",但漏洞列表为空。

    原因:

  • 目标确实没有漏洞(可能性较小)
  • 扫描插件选择不当
  • 目标有 WAF 防护
  • 扫描参数配置错误
  • 解决方案:

    用已知漏洞靶场测试:

    • 先扫描 DVWA(Security Level: Low)
    • 如果能扫出漏洞,说明工具正常

    调整扫描插件:

    • 选择 “全量插件扫描”
    • 或手动勾选 SQL 注入、XSS 等常见漏洞插件

    查看扫描日志:

    • 数据库 → HTTP History
    • 查看发送了哪些 Payload
    • 检查响应是否正常

    问题 5:Yakit 卡顿或崩溃

    现象:使用一段时间后,Yakit 界面卡顿,响应缓慢,甚至崩溃。

    原因:

  • 请求历史过多,占用内存
  • 插件死循环
  • 电脑配置不足
  • 解决方案:

    清理历史数据:

    • 数据库 → HTTP History
    • 点击 “清空数据”

    限制历史记录数量:

    • 设置 → MITM 配置
    • “最大历史记录” 改为 1000 或更小

    重启 Yakit:

    • 保存当前工作
    • 完全退出后重新启动

    十一、总结与经验

    ✅ 核心功能回顾

  • MITM 劫持 – 拦截和修改请求,手动测试
  • Web Fuzzer – 批量测试 Payload,自动化测试
  • 插件扫描 – 一键扫描常见漏洞
  • 编码工具 – 快速编解码

  • 完整实战流程回顾

    本文通过两个真实案例,演示了 Yakit 的完整使用流程:

    案例 1:DVWA 登录密码暴力破解

    目标:通过 Yakit 爆破 DVWA 登录密码

    步骤:

  • ✅ 启动 Yakit MITM 劫持(使用"免配置启动")
  • ✅ 配置浏览器代理(SwitchyOmega,删除 127.0.0.1 排除规则)
  • ✅ 访问 DVWA 登录页面,输入正确账号 + 错误密码
  • ✅ 在 Yakit 中抓取登录 POST 请求
  • ✅ 发送到 WebFuzzer
  • ✅ 配置 Fuzztag 密码字典(8 个常见密码)
  • ✅ 批量发送请求,分析响应
  • ✅ 查看响应头 Location 字段,找到 Location: index.php 的密码
  • ✅ 成功找到密码:password
  • 关键技巧:

    • 判断登录成功的标准是 Location 响应头,而不是状态码
    • 所有密码测试都返回 302,但重定向地址不同
    • Location: index.php = 登录成功
    • Location: login.php = 登录失败

    案例 2:SQL 注入漏洞检测

    目标:使用 WebFuzzer 检测 DVWA SQL 注入漏洞

    步骤:

  • ✅ 确认 DVWA 安全等级为 Low
  • ✅ 访问 SQL 注入测试页面
  • ✅ 输入正常参数 id=1,抓取 GET 请求
  • ✅ 发送到 WebFuzzer
  • ✅ 配置 SQL 注入测试字典(19 个 payload)
  • ✅ 批量测试,分析响应大小和状态码
  • ✅ 发现响应大小差异明显的 payload
  • ✅ 在浏览器中验证注入点
  • 关键发现:

    • 复杂 payload(OR 1=1, UNION SELECT)返回 400,被拦截
    • 简单闭合测试(', ", '))返回 302
    • 响应大小是关键指标:1047, 1064, 1251 字节的响应需要重点关注
    • 不同的闭合方式(', '), ')))可能对应不同的 SQL 语句结构

    实战经验:

    • 浏览器测试结果:输入 1' 后页面返回空白
    • 空白页面 ≠ 没有漏洞,可能是:
      • SQL 语法错误导致查询失败
      • PHP 配置隐藏了错误信息
      • 需要尝试布尔盲注或时间盲注
    • 建议结合多种测试方法:错误注入、布尔盲注、UNION 注入

    使用技巧总结

  • 代理配置

    • ✅ 使用 SwitchyOmega 快速切换代理
    • ✅ 删除 127.0.0.1 和 localhost 排除规则(测试本地靶场的关键!)
    • ✅ 或使用 Yakit 的"免配置启动"功能
  • 证书安装

    • ✅ 首次使用必须安装 CA 证书到"受信任的根证书颁发机构"
    • ✅ 安装后重启浏览器
  • 抓包技巧

    • ✅ 区分不同的请求类型(GET/POST)
    • ✅ 注意状态码(200/302/400)的含义
    • ✅ 关注响应头(特别是 Location)
    • ✅ 响应大小差异是重要的判断依据
  • Fuzzer 测试

    • ✅ 从简单 payload 开始测试
    • ✅ 观察响应大小、状态码、响应时间
    • ✅ 对异常响应进行深入分析
    • ✅ 结合浏览器手工验证
  • 插件管理

    • ✅ 定期更新插件库
    • ✅ 根据测试目标选择合适的插件
  • 数据管理

    • ✅ 及时导出扫描结果和历史数据
    • ✅ 定期清理历史数据,避免卡顿
  • 过滤规则

    • ✅ 设置过滤规则,排除静态资源请求(.jpg、.css、.js)
    • ✅ 但不要过度过滤,避免遗漏重要请求
  • 性能优化

    • ✅ 定期清理历史数据
    • ✅ 限制最大记录数(建议 1000 条)

  • 实战建议

  • 先熟悉基础功能

    • MITM 劫持 → WebFuzzer 测试 → 插件扫描
    • 按照本文案例逐步练习
  • 结合靶场练习

    • DVWA(推荐初学者)
    • SQL-LABS(SQL 注入专项训练)
    • Pikachu(多种漏洞类型)
    • Upload-labs(文件上传漏洞)
  • 多看官方文档

    • https://www.yaklang.com/docs
    • 官方文档有更多高级用法
  • 加入社区交流

    • 官方微信群、知识星球
    • GitHub Issues 提问
  • 对比 Burp Suite

    • 同一个靶场用两个工具测试
    • 对比差异,理解不同工具的优势
  • 记录实战过程

    • 遇到的问题和解决方案
    • 成功的 payload 和测试方法
    • 积累自己的漏洞字典

  • ⚠️ 注意事项

  • 仅用于授权测试

    • 未经授权的渗透测试是违法行为
    • 本文所有案例均在本地靶场环境中进行
  • 数据安全

    • 不要在生产环境使用
    • 测试数据不要包含真实敏感信息
  • 网络隔离

    • 建议在虚拟机或隔离网络中测试
    • 避免影响正常业务
  • 及时更新

    • 保持 Yakit 和插件为最新版本
    • 关注官方更新日志
  • 记录学习过程

    • 遇到问题及时记录
    • 成功的测试方法保存下来
    • 建立自己的知识库

  • 常见坑点提醒

    坑点 1:SwitchyOmega 排除了本地地址

    • ❌ 症状:访问 http://127.0.0.1/dvwa 时 Yakit 抓不到包
    • ✅ 解决:删除 SwitchyOmega 中的 127.0.0.1 和 localhost 排除规则

    坑点 2:Edge 浏览器代理不生效

    • ❌ 症状:配置了 SwitchyOmega,但 Edge 不走代理
    • ✅ 解决:使用 Chrome 浏览器,或使用 Yakit 的"免配置启动"

    坑点 3:只看状态码判断成功/失败

    • ❌ 症状:所有密码测试都返回 302,以为都失败了
    • ✅ 解决:查看 Location 响应头,不同的重定向地址代表不同结果

    坑点 4:忽略响应大小差异

    • ❌ 症状:认为状态码相同就是相同的响应
    • ✅ 解决:关注响应大小,差异明显的响应往往隐藏着关键信息

    坑点 5:浏览器测试返回空白就放弃

    • ❌ 症状:输入 1' 后页面空白,以为没有漏洞
    • ✅ 解决:空白 ≠ 无漏洞,尝试布尔盲注、时间盲注等其他测试方法

    附录:快捷键速查

    快捷键功能
    Ctrl + R 重放请求
    Ctrl + F 搜索
    Ctrl + I 劫持请求
    Ctrl + E 编码/解码
    Ctrl + S 保存当前数据

    参考资料

    • Yakit 官方文档
    • Yakit GitHub
    • Yakit 插件市场
    • 长亭科技官网

    本文所有实战案例均在本地隔离环境中的合法靶场上进行,仅用于学习和研究目的。

    ⚠️ 重要提醒:未经授权对他人系统进行渗透测试是违法行为

    请仅在自己搭建的测试环境或获得明确授权的系统上进行安全测试

    本文作者不对读者的任何违法行为负责

    请遵守《中华人民共和国网络安全法》等相关法律法规

    合法使用,技术向善。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Yakit 入门实战指南
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!