nuclei配合burpsuite快速生成POC
简介
Nuclei是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性
官网:https://nuclei.projectdiscovery.io
Nuclei项目地址:https://github.com/projectdiscovery/nuclei
Nuclei-Templates项目地址:https://github.com/projectdiscovery/nuclei-templates
使用
1、bp插件下载,并加载到burpsuite
https://github.com/projectdiscovery/nuclei-burp-plugin
2、以下步骤以CVE-2023-23752为例
3、使用burpsuite抓包
4、点击execute进行运行调试
5、增加判断特征
6、添加到本地nuclei-templates
7、运行,-t 是指定POC目录
8、参考语法如下
id
id是扫描模版的唯一标识,有cve、cnvd可以以cve id或是cnvd id命名。另外不能带空格。
info
info主要写基本信息,名称name、作者author、漏洞级别severity、出处reference等等。
requests
raw需要原始http请求,body里的{{username}}和{{password}}对应payloads里的字段,即发送请求时会填入字段值,即实际请求为userName=admin&password=123456。
payloads
匹配参数可以是特定的参数,也可以是path文件路径,用于Fuzz。
attack即攻击类型,有batteringram、pitchfork、clusterbomb,同burp Intruder。
batteringram:使用同一字典,将所有标记字段同时替换。如用户名和密码相同:
userName={{key}}&password={{key}}
payloads:
key:
- admin
attack: batteringram
pitchfork:每个标记字段单独设置字典,按照一一对应的关系进行组合。如存在多个用户名密码,并且一一对应:
userName={{username}}&password={{password}}
payloads:
username:
- admin
- root
password:
- admin123
- password
attack: pitchfork
clusterbomb:使用穷举法,对每个标记字段都遍历字典。如针对特定用户名进行爆破的情况:
userName={{username}}&password={{password}}
payloads:
username:
- admin
- root
password:
- password
- toor
- default
- 123456789
attack: clusterbomb
matcher
匹配器,主要用于设置匹配条件。
matchers-condition用于多个匹配条件的关联,and即需要满足所有匹配条件,or则是满足其中一个条件就算是true。
type里word即关键字匹配
part用于限制匹配的位置。
status匹配状态码。