模板结构
Nuclei 模板使用基于 YAML 的自定义 DSL,其结构根据所使用的特定协议而变化。通常,模板包含以下元素:- 模板的唯一 ID
- 与模板相关的基本信息和元数据
- 指定的协议,如 HTTP、DNS、File 等
- 特定于所选协议的详细信息,如 HTTP 协议中发出的请求
- 一系列匹配器用于确认发现的存在
- 必要的提取器用于从结果中检索数据
ID
每个模板都有一个唯一的 ID,用于在输出写入期间指定输出行的模板名称。 模板文件以 YAML 扩展名结尾。模板文件可以使用您选择的任何文本编辑器创建。信息
关于模板的下一个重要信息是 info 块。Info 块提供 name、author、severity、description、reference、tags 和metadata。它还包含指示模板严重性的 severity 字段,info 块还支持动态字段,因此可以定义 N 个 key: value 块以提供关于模板的更多有用信息。reference 是另一个常用标签,用于定义模板的外部参考链接。
在 info 块中始终添加的另一个有用标签是 tags。这允许您根据目的(如 cve、rce 等)为模板设置一些自定义标签。这使 nuclei 能够识别具有您输入标签的模板并仅运行这些模板。
Info 块示例 -
元数据
可以添加元数据节点,例如,集成 uncover(参见 Uncover 集成)。 元数据节点的格式为:<engine>-query: '<query>',其中:
<engine>是搜索引擎,相当于 nuclei 的-ue选项或 uncover 的-e选项的值<query>是搜索查询,相当于 nuclei 的-uq选项或 uncover 的-q选项的值