Yakit 入门实战指南 Yakit 入门实战指南前言本文是一篇真实实战记录详细记录了从零开始使用 Yakit 进行渗透测试的完整过程包括✅完整的工具配置过程包括遇到的坑和解决方案✅DVWA 登录密码暴力破解实战完整步骤 结果分析✅SQL 注入漏洞检测实战Fuzzer 批量测试 响应分析✅常见问题和踩坑记录真实遇到的问题和解决方法不同于传统的工具教程本文记录了真实的配置过程SwitchyOmega 代理配置、证书安装、抓包失败的排查实战中的思考为什么状态码都是 302 但结果不同响应大小差异说明了什么踩过的坑Edge 浏览器抓不到包、本地靶场流量被排除、空白页面的含义完整的测试流程从抓包到爆破从 payload 测试到结果验证 目录前言Yakit 简介下载与安装界面布局介绍核心功能模块MITM 劫持实战DVWA 登录密码爆破⭐ 重点Web Fuzzer 模糊测试SQL 注入检测⭐ 重点漏洞扫描实战常用插件推荐与 Burp Suite 对比常见问题与踩坑记录⭐ 重点总结与经验附录快捷键速查参考资料一、Yakit 简介什么是 YakitYakit是由长亭科技开源的一款集成化单兵安全能力平台类似于 Burp Suite但功能更强大且完全免费。核心特点✅完全免费- 无需破解所有功能开箱即用✅中文界面- 国人开发中文文档齐全✅功能强大- 集成了代理、扫描、爆破、Fuzzer 等多种功能✅插件丰富- 内置大量插件支持自定义✅持续更新- 活跃的开源社区更新频繁适用场景场景说明渗透测试Web 应用安全测试漏洞挖掘SQL 注入、XSS、SSRF 等漏洞发现流量分析HTTP/HTTPS 请求拦截和分析模糊测试Payload 批量测试学习研究安全技术学习和研究二、下载与安装1. 下载地址官方网站https://www.yaklang.com/GitHub 仓库https://github.com/yaklang/yakit2. 安装步骤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编解码支持的编码Base64URL 编码HTML 实体编码Unicode 编码MD5/SHA1/SHA256 哈希五、MITM 劫持实战实战案例DVWA 登录密码爆破本节记录一次完整的 Yakit 实战流程通过 MITM 劫持 WebFuzzer 暴力破解 DVWA 登录密码。步骤 1启动 Yakit 代理打开 Yakit点击左侧“开启 MITM”标签点击右侧橙色按钮“劫持启动”确认显示“劫持 HTTP Request 127.0.0.1:8083”⚡快捷方式使用“免配置自动劫持启动”功能Yakit 会自动配置系统代理步骤 2配置浏览器代理方法 1SwitchyOmega 插件推荐安装插件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: securityimpossible; PHPSESSID3i0v2j7j8h6j2845f3niq091na usernameadminpassword1LoginLoginuser_token4d5ef4b9e45b36c9b8c36d18a2173bab关键参数最后一行的password1就是我们要爆破的目标步骤 5配置 Fuzztag 爆破字典在 WebFuzzer 界面找到最后一行请求体usernameadminpassword1LoginLoginuser_token...选中password1中的1点击顶部工具栏的 “Fuzztag” 按钮弹出字典配置窗口输入常见密码字典admin password admin123 123456 root 12345678 test qwerty点击 “确定输入字典”Yakit 会自动生成 Fuzztag 标记类似usernameadminpassword{{fuzztag}}LoginLoginuser_token...点击左上角橙色的 “发送” 按钮步骤 6分析爆破结果Fuzzer 开始批量发送请求右侧会显示结果表格序号Method状态码邮编延迟(ms)Payloads1POST302039admin1232POST302010491233POST302010951234564POST30201128password分析要点状态码所有请求都返回302 Found重定向登录成功 → 重定向到index.php登录失败 → 重定向到login.php查看重定向地址点击每一行在响应区域查看Location响应头如果Location: index.php→密码正确如果Location: login.php→ 密码错误响应时间第 1 行响应 39ms其他都是 1000ms响应时间差异可以作为判断依据之一步骤 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/?id1SubmitSubmit HTTP/1.1状态码200 OK这个请求才是真正包含查询结果的右键点击该请求 → “发送到 WebFuzzer”步骤 3配置 SQL 注入测试字典在 WebFuzzer 界面你会看到完整的 GET 请求GET /dvwa/vulnerabilities/sqli/?id1SubmitSubmituser_token... HTTP/1.1 Host: 127.0.0.1关键参数URL 中的id1就是我们要测试的注入点。配置 Fuzztag 字典选中 URL 中的1id后面的数字点击 “Fuzztag” 按钮输入 SQL 注入测试字典1 1 1 1) 1) 1)) 1)) 1 OR 11 1 OR 11 1) OR (11 1) OR (11 1 OR 11-- 1 OR 11# 1 UNION SELECT NULL-- 1) UNION SELECT NULL-- OR 11 OR 11 admin OR 11 admin) OR 11点击 “确定输入字典”点击 “发送” 开始测试步骤 4分析测试结果Fuzzer 执行后右侧会显示结果表格序号Method状态码邮编大小延迟(ms)Payloads操作1GET400222021’ OR ‘1’1-2GET400222011’) OR ‘1’1-3GET400222051’ OR 11–-………………-13GET3020301’-14GET3020721-15GET30201061’)-16GET30201351-17GET302010471’)-18GET302010641’))-19GET302012511’))-结果分析状态码 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; charsetUTF-8注意DVWA 的 SQL 注入测试页面可能返回 302 重定向这是因为Session 管理机制或者测试环境的配置问题更可靠的测试方法 — 在浏览器中验证在浏览器的 User ID 输入框中输入1点击 Submit观察页面返回如果显示 SQL 错误信息 → 存在注入漏洞如果显示空白 → SQL 查询失败但没有显示错误如果显示正常结果 → 输入被过滤或转义布尔盲注测试输入: 1 AND 11 预期: 应该返回 ID: 1 的数据条件为真 输入: 1 AND 12 预期: 应该返回空白条件为假如果两次测试结果不同说明存在布尔盲注漏洞实战经验总结关键发现响应大小是关键指标响应大小明显不同说明 SQL 查询返回了不同的结果可以作为判断注入成功的依据不同的闭合方式简单闭合可能不够需要尝试),)),))等不同闭合方式取决于后端 SQL 语句的结构状态码和重定向302 重定向可能是 session 或权限问题不能只依赖状态码判断需要结合响应内容和响应大小综合分析WAF 和过滤复杂的 payload如OR 11,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)}}SubmitSubmit HTTP/1.1Yakit 会自动加载内置的 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 作为补充。十、 常见问题与踩坑记录问题 1MITM 看不到任何请求现象启动 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” 情景模式不是直接连接或系统代理问题 2Web 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 防护扫描参数配置错误解决方案用已知漏洞靶场测试先扫描 DVWASecurity Level: Low如果能扫出漏洞说明工具正常调整扫描插件选择“全量插件扫描”或手动勾选 SQL 注入、XSS 等常见漏洞插件查看扫描日志数据库 → HTTP History查看发送了哪些 Payload检查响应是否正常问题 5Yakit 卡顿或崩溃现象使用一段时间后Yakit 界面卡顿响应缓慢甚至崩溃。原因请求历史过多占用内存插件死循环电脑配置不足解决方案清理历史数据数据库 → HTTP History点击“清空数据”限制历史记录数量设置 → MITM 配置“最大历史记录”改为 1000 或更小重启 Yakit保存当前工作完全退出后重新启动十一、总结与经验✅ 核心功能回顾MITM 劫持- 拦截和修改请求手动测试Web Fuzzer- 批量测试 Payload自动化测试插件扫描- 一键扫描常见漏洞编码工具- 快速编解码完整实战流程回顾本文通过两个真实案例演示了 Yakit 的完整使用流程案例 1DVWA 登录密码暴力破解目标通过 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 登录失败案例 2SQL 注入漏洞检测目标使用 WebFuzzer 检测 DVWA SQL 注入漏洞步骤✅ 确认 DVWA 安全等级为 Low✅ 访问 SQL 注入测试页面✅ 输入正常参数id1抓取 GET 请求✅ 发送到 WebFuzzer✅ 配置 SQL 注入测试字典19 个 payload✅ 批量测试分析响应大小和状态码✅ 发现响应大小差异明显的 payload✅ 在浏览器中验证注入点关键发现复杂 payloadOR 11,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-LABSSQL 注入专项训练Pikachu多种漏洞类型Upload-labs文件上传漏洞多看官方文档https://www.yaklang.com/docs官方文档有更多高级用法加入社区交流官方微信群、知识星球GitHub Issues 提问对比 Burp Suite同一个靶场用两个工具测试对比差异理解不同工具的优势记录实战过程遇到的问题和解决方案成功的 payload 和测试方法积累自己的漏洞字典⚠️ 注意事项仅用于授权测试未经授权的渗透测试是违法行为本文所有案例均在本地靶场环境中进行数据安全不要在生产环境使用测试数据不要包含真实敏感信息网络隔离建议在虚拟机或隔离网络中测试避免影响正常业务及时更新保持 Yakit 和插件为最新版本关注官方更新日志记录学习过程遇到问题及时记录成功的测试方法保存下来建立自己的知识库常见坑点提醒坑点 1SwitchyOmega 排除了本地地址❌ 症状访问http://127.0.0.1/dvwa时 Yakit 抓不到包✅ 解决删除 SwitchyOmega 中的127.0.0.1和localhost排除规则坑点 2Edge 浏览器代理不生效❌ 症状配置了 SwitchyOmega但 Edge 不走代理✅ 解决使用 Chrome 浏览器或使用 Yakit 的免配置启动坑点 3只看状态码判断成功/失败❌ 症状所有密码测试都返回 302以为都失败了✅ 解决查看Location响应头不同的重定向地址代表不同结果坑点 4忽略响应大小差异❌ 症状认为状态码相同就是相同的响应✅ 解决关注响应大小差异明显的响应往往隐藏着关键信息坑点 5浏览器测试返回空白就放弃❌ 症状输入1后页面空白以为没有漏洞✅ 解决空白 ≠ 无漏洞尝试布尔盲注、时间盲注等其他测试方法附录快捷键速查快捷键功能Ctrl R重放请求Ctrl F搜索Ctrl I劫持请求Ctrl E编码/解码Ctrl S保存当前数据参考资料Yakit 官方文档Yakit GitHubYakit 插件市场长亭科技官网本文所有实战案例均在本地隔离环境中的合法靶场上进行仅用于学习和研究目的。⚠️重要提醒未经授权对他人系统进行渗透测试是违法行为请仅在自己搭建的测试环境或获得明确授权的系统上进行安全测试本文作者不对读者的任何违法行为负责请遵守《中华人民共和国网络安全法》等相关法律法规合法使用技术向善。