专家级 Nuclei 模板生成器 - 基于 AI 多模态分析的自动化安全测试工具
YinPocX v2.0 是一款革命性的安全测试工具,能够自动将 Markdown 格式的漏洞报告转换为高质量的 Nuclei YAML 模板。通过集成 AI 的多模态能力,工具不仅能理解文本描述,还能分析漏洞截图,生成精准的检测规则。
- 多模态 AI 分析 :同时处理文本和图像内容,提取关键漏洞特征
- 动态 Prompt 优化 :根据漏洞类型(SQL注入、文件上传、RCE、LFI)自动选择最优化的 AI 指令
- 智能漏洞分类 :自动识别漏洞类型并应用专门的生成策略
- 企业级配置管理 :支持命令行、环境变量、配置文件的分层配置
- 自动语法验证 :集成 Nuclei 引擎进行模板语法验证
- 智能后处理 :自动修正 AI 生成内容中的常见错误
- 批量处理能力 :支持文件夹级别的批量转换
- OAST 支持 :自动将 dnslog 转换为 {{interactsh-url}} 变量
- 标准化输出 :严格遵循 Nuclei YAML 规范
- 错误容错 :完善的异常处理和错误报告机制
# Python 版本
Python 3.7+
# 必需依赖
pip install openai pyyaml requests
# Nuclei 引擎
# 安装方法请参考:https://github.com/projectdiscovery/nuclei
- 克隆项目
git clone https://github.com/taielab/YinPocX.git
cd YinPocX
- 安装依赖
pip install -r requirements.txt
- 配置 API 密钥
# 方法1:环境变量(推荐使用gemini-2.5-pro模型,可以通过注册云雾API中转平台使用:https://yunwu.ai/register?aff=PBpy)
export OPENAI_API_KEY="your-api-key-here"
# 方法2:修改 config.yaml
vim config.yaml
# 基本用法
python YinPocX.py -i pocs -o nuclei_templates
# 指定模型
python YinPocX.py -i pocs -o templates --model gemini-2.5-pro
# 自定义 Nuclei 路径
python YinPocX.py --nuclei-path /path/to/nuclei
YinPocX/
├── YinPocX.py # 主程序文件
├── config.yaml # 配置文件
├── pocs/ # 输入文件夹(Markdown POC)
├── nuclei_templates/ # 输出文件夹(生成的模板)
└── README.md # 项目文档
# API 配置
api:
key: "" # OpenAI API 密钥
base_url: "https://yunwu.ai/v1" # API 基础 URL
# 文件夹配置
folders:
input: "pocs" # 输入文件夹
output: "nuclei_templates" # 输出文件夹
# 模型配置
model:
name: "gemini-2.5-pro" # AI 模型名称
# Nuclei 配置
nuclei:
path: "nuclei" # Nuclei 可执行文件路径
参数 | 说明 | 默认值 |
---|---|---|
--api-key |
OpenAI API 密钥 | 从配置文件读取 |
--base-url |
API 基础 URL | https://api.openai.com/v1 |
-i, --input-folder |
输入文件夹 | pocs |
-o, --output-folder |
输出文件夹 | nuclei_templates |
--model |
AI 模型名称 | gpt-4o |
--nuclei-path |
Nuclei 路径 | nuclei |
漏洞类型 | 关键词 | 特殊处理 |
---|---|---|
SQL 注入 | sql注入 , sqli |
基于报错信息构建匹配器 |
文件上传 | 文件上传 , upload |
匹配上传成功的响应字段 |
文件读取 | 文件读取 , lfi |
匹配文件内容特征 |
远程执行 | rce , 命令执行 |
支持 OAST 检测 |
生成的 Nuclei 模板示例:
id: example-sqli-vulnerability
info:
name: "Example SQL Injection"
author: "YinPocX"
severity: high
description: "SQL injection vulnerability in login form"
tags:
- sqli
- injection
http:
- raw:
- |
POST /login HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
username=admin'&password=test
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: regex
part: body
regex:
- "SQL syntax error"
- "mysql_fetch_array"
- 文件扫描:递归扫描输入文件夹中的
.md
文件 - 内容分析:提取文本内容和图片资源
- 漏洞分类:基于关键词自动识别漏洞类型
- AI 生成:调用 gemini-2.5-pro 生成初始模板
- 后处理:修正格式错误,标准化输出
- 语法验证:使用 Nuclei 引擎验证模板语法
- 结果输出:保存最终的 YAML 模板
工具支持处理 Markdown 中的图片链接:
- 自动下载远程图片
- 读取本地图片文件
- Base64 编码后发送给 AI 模型
- 支持 JPEG、PNG、GIF、WebP 格式
- 自动修正 AI 生成的已弃用字段(如
requests:
→http:
) - 标准化 HTTP 请求格式
- 自动添加必需的
Host: {{Hostname}}
头 - 智能处理 Content-Length 头
处理完成后,工具会输出详细的统计信息
--- Processing Summary ---
Successfully generated and validated: 15 templates.
Failed during generation/post-processing: 2 files.
Failed Nuclei validation: 1 templates.
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- ProjectDiscovery Nuclei - 强大的漏洞扫描引擎
- 云雾API - 提供先进的 AI 模型
- 所有贡献者和用户的支持
- 项目主页:GitHub Repository
- 问题反馈:Issues
⭐ 如果这个项目对您有帮助,请给我们一个 Star!