Nuclei
是基于YAML
模版文件的概念,这些模版文件定义了如何发送和处理请求。这使得Nuclei
具备了易于扩展的能力。这些模版是用YAML
编写的,它指定了一种简单的人类可读格式,以快速定义执行过程。id
编写模板第一行定义的就是id
,每个模版都有一个唯一ID
,输出写入过程中用于指定输出行的模版名称。模版文件以.yaml
扩展名结尾
id: xxxx-sql
例如,下面的这个POC
,id
为 nginx-version
使用这个poc
扫描的结果,开头显示的就是我们定义的 id
值
我们尝试把id
修改成 nginx-version-test
再来看我们的输出,也已经跟着改变了
注意点:ID
不能包含空格;这样做是为了更容易的进行输出解析
Info
关于模版下一个重要信息就是info
,它提供了name
,author
,severity
,description
,reference
,tags
和metadata
。它还包含了指示POC
严重程度的严重性字段
info:
name: Git Config File Detection Template
author: Ice3man
severity: medium
description: Searches for the pattern /.git/config on passed URLs.
reference: https://www.acunetix.com/vulnerabilities/web/git-repository-found/
tags: git,config
reference
是info
中常用的标签,用于定义模版的外部参考链接info:
reference: https://www.acunetix.com/vulnerabilities/web/git-repository-found/
info
中要添加另一个有用的标签是tags
,它允许您为模版设置一些自定义标签,比如CVE
、RCE
等。这使得nuclei
能够识别带有你输入标签的模版,并且只运行带有这些标签的模版使用--include-tags
参数可以设置只运行指定的标签模版
info
块的示例:info:
# 项目的名字
name: Git Config File Detection Template
# 作者的名字
author: Ice3man
# 漏洞严重程度
severity: medium
# 对于漏洞的描述
description: Searches for the pattern /.git/config on passed URLs.
# 参考的外部链接
reference: https://www.acunetix.com/vulnerabilities/web/git-repository-found/
# 为模版定义标签
tags: git,config
在前端显示的漏洞严重程度标签,就是由info
下的severity
标签定义的
很方便的一点是,你可以与你的队友或者安全团队共享你编写的nuclei
模版,以便轻松的在其他地方复现问题
Metadata
在nuclei
中,metadata
是一个可选的模板项,用于提供一些额外的信息,以便过滤或分组扫描。
metadata
项可以包含多个键值对,例如:info:
metadata:
cms: "wordpress"
version: "5.8.2"
这样的metadata
项表示该模板适用于WordPress 5.8.2
版本的CMS
以及一些其他搜索引擎的举例:
info:
metadata:
fofa-query: host="baidu.com"
shodan-query: title:"Nagios XI"
google-query: inurl:/web-console/ServerInfo.jsp | inurl:/status?full=true
比如在下面这个例子的poc
中:
我们使用metadata
来告诉使用者,可以用给出的关键字去fofa
搜索相同的站点
当然,metadata
没有固定key
,想写什么都可以
关注公众号后台回复 0001
领取域渗透思维导图,0002
领取VMware 17永久激活码,0003
获取SGK地址,0004
获取在线ChatGPT地址,0005
获取 Windows10渗透集成环境
加我微信好友,邀请你进交流群
往期推荐
原文始发于微信公众号(刨洞技术交流):Nuclei模版编写中文指南-info
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论