Nuclei POC编写小白速通指南

Nuclei POC编写小白速通指南NucleiPOC 编写小白速通指南 nucleipoc 编写

大家好,欢迎来到IT知识分享网。

目录

Nuclei POC编写小白速通指南

1、Nuclei是什么?

2、为什么用Nuclei

优点:

缺点:

3、Nuclei工具安装方式

安装前言:

安装Go环境教程

windows环境安装Go、Nuclei

Linux环境安装Go、Nuclei

其他环境安装Go、Nuclei

4、Nuclei工具参数详解

1.Nuclei -h

2.更新Nuclei

yaml是什么?

yaml模板内容参数解读如下:

yaml POC模板


Nuclei POC编写小白速通指南

1、Nuclei是什么?

是出家人沙仁必备,行走江湖的一大利器(bushi

是一款基于YAML语法模板的定制化快速漏洞扫描器;可以对主机进行批量快速扫描。

2、为什么用Nuclei

优点:

  1. 支持HTTP、DNS、TCP、SSL、FILE协议
  2. 可以进行大规模扫描。
  3. 基于带外的检测。
  4. 能够轻松编写自己的模板。
  5. 基于go语言

缺点:

nuclei在攻防演练中有个非常致命的问题,慢!

因为nuclei的spray规则是所有目标打全量的poc,如此大量的请求包对网络来说绝对是个灾难,要是遇到封的快的环境,也许还没探测到存在的漏洞就已经被ban了。

3、Nuclei工具安装方式

安装前言:

需要先安装Go语言,配置好环境

安装Go环境教程
windows环境安装Go、Nuclei

下载Go环境:所有版本 – The Go Programming Language (google.cn)

Nuclei POC编写小白速通指南

选择自己电脑所对应的版本,点击下载;

下载完成之后,放到自己的目录下,然后解压

Nuclei POC编写小白速通指南

桌面空白处鼠标右击此电脑—>属性—>高级系统设置—>配置环境变量

Nuclei POC编写小白速通指南

需要新建两个环境变量配置

Nuclei POC编写小白速通指南

Nuclei POC编写小白速通指南

然后将新建的GOROOT配置到 Path 这个环境变量中去,在系统变量中找到 Path,点击编辑->新建,输入%GOROOT%\bin,点击确定。

确定,确定,在确定,最后应用直到桌面。

win+R输入cmd打开终端,输入 go version ,go env

Nuclei POC编写小白速通指南

Nuclei POC编写小白速通指南

查看一下配置的环境有无问题

可以在cmd终端查看

输入

echo %GOPATH% echo %GOROOT%

Nuclei POC编写小白速通指南

出现以上画面 那你就配置成功了嗷!

不过咱的配置到这儿只完成了99%,还差一步,老铁别急,且看我细细道来

接下来还要配置GO111MODULE、GOPROXY、GOSUMDB

为啥要配置这仨小玩意儿捏?

GO111MODULE——>on表示开启mod模式(项目管理需要用到)

输入 go env -w GO111MODULE=on

GOPROXY——>使用go get 安装第三方库的地址

输入 go env -w GOPROXY=https://mirrors.aliyun.com/goproxy

GOSUMDB——>包的MD5校验

输入 go env -w GOSUMDB=off

再次输入 go env

Nuclei POC编写小白速通指南

ok了,老铁没毛病

接下来接着在cmd命令行里安装Nuclei,命令如下:

go get -u github.com/projectdiscovery/nuclei/v2/cmd/nuclei

验证安装 运行以下命令来验证Nuclei来验证Nuclei是否正确安装:

nuclei   -version

如果一切正常,你就能看到Nuclei的版本号。

Linux环境安装Go、Nuclei

在线源码编译安装 -需安装Go语言

go   install  -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest

或者选择本地源码编译安装 -需安装Go语言

git clone https://github.com/projectdiscovery/nuclei.git cd nuclei/v2/cmd/nuclei go build mv nuclei /usr/local/bin/ nuclei -version 

其他环境安装Go、Nuclei

kali一键安装 不需要安装Go语言,且仅限kali操作系统

apt   install   nuclei

安装完成之后,使用如下命令,检测是否安装成功

nuclei   -version

Nuclei POC编写小白速通指南

出现如上图的画面就证明你已经安装成功了嗷!

MacOS一键安装 不需要安装Go语言,仅限MacOS操作系统

brew   install nuclei

Nuclei POC编写小白速通指南

Docker一键安装 不需要安装Go语言

docker pull projectdiscovery/nuclei:latest

直接下载发行版 不需要安装Go语言,适合各类操作系统

https://github.com/projectdiscovery/nuclei/releases

4、Nuclei工具参数详解

1.Nuclei -h

用法: nuclei [命令] 命令: 目标:   -u, -target string[]                 指定扫描的URL/主机   -l, -list string                     指定需要扫描的URL/主机文件(一行一个) 模板:   -t, -templates string[]             指定需要扫描的模板或者模板的路径   -nt, -new-templates                 只扫描最新版本中添加的模板   -w, -workflows string[]             指定扫描中的工作流或者工作流目录   -validate                           验证通过的模板   -tl                                 列出所有可用的模板 过滤:   -tags string[]                       执行有标记的模板子集   -etags, -exclude-tags string[]       执行标记为排除的模板   -itags, -include-tags string[]       不执行具有攻击性的模板   -et, -exclude-templates string[]     要排除的模板或者模板目录   -it, -include-templates string[]     执行默认或配置中排除的模板   -s, -severity value[]               根据严重性运行模板,允许的值有:info,low,medium,high,critical     -es, -exclude-severity value[]       根据严重性排除模板,允许的值有:info,low,medium,high,critical     -a, -author string[]                 执行指定作者的模板 输出:   -o, -output string                   输出发现的问题到文件   -silent                             只显示结果   -nc, -no-color                       禁用输出内容着色(ANSI转义码)   -json                               输出为jsonL(ines)   -irr, -include-rr                   在JSONL中输出对应的请求和相应(仅结果)   -nm, -no-meta                       不显示匹配的元数据   -nts, -no-timestamp                 不在输出中显示时间戳   -rdb, -report-db string             本地的Nuclei结果数据库(始终使用该数据库保存结果)         -me, -markdown-export string         以markdown导出结果   -se, -sarif-export string           以SARIF导出结果 配置:   -config string                       指定Nuclei的配置文件   -rc, -report-config string           指定Nuclei报告模板文件   -H, -header string[]                 指定报告中的标题:value格式   -V, -var value                       通过var=value指定var值   -r, -resolvers string               指定Nuclei的解析文件   -sr, -system-resolvers               当DNS错误时使用系统DNS   -passive                             启用被动扫描处理HTTP响应   -ev, env-vars                       在模板中使用环境变量 交互:   -inserver, -ineractsh-server string 使用interactsh反连检测平台(默认为"https://interact.sh")   -itoken, -interactsh-token string   指定反连检测平台的身份凭证   -interactions-cache-size int         指定保存在交互缓存中的请求数(默认:5000)   -interactions-eviction int           聪缓存中删除请求前等待的时间(默认为60秒)   -interactions-poll-duration int     每个轮询前等待时间(默认为5秒)   -interactions-cooldown-period int   退出轮询前的等待时间(默认为5秒)   -ni, -no-interactsh                 禁用反连检测平台,同时排除基于反连检测的模板 限速:   -r1, -rate-limit int                 每秒最大请求量(默认:150)   -rlm, -rate-limit-minute int         每分钟最大请求量   -bs, -bulk-size int                 每个模板最大并行检测数(默认:25)   -c, -concurrency int                 并行执行的最大模板数量(默认:25) 优化:   -timeout int                         超时时间(默认为5秒)   -retries int                         重试次数(默认:1)   -mhe, -max-host-error int           某主机扫描失败次数,跳过该主机(默认:30)   -project                             使用项目文件夹避免多次发送同一请求   -project-path string                 设置特定的项目文件夹   -spm, -stop-at-first-path           得到一个结果后停止(或许会中断模板和工作流的逻辑)   -stream                             流模式 - 在不整理输入的情况下详细描述 无界面浏览器:    -headless                           启用需要无界面浏览器的模板    -page-timeout int                   在无界面下超时秒数(默认:20)    -sb, -show-brower                   在无界面浏览器运行模板时,显示浏览器    -sc, -system-chrome                 不使用Nuclei自带的浏览器,使用本地浏览器 调试:    -debug                             显示所有请求和响应    -debug-req                         显示所有请求    -debug-resp                         显示所有响应    -proxy, -proxy-url string           使用HTTP代理    -proxy-socks-url string             使用SOCK5代理    -tlog, -trace-log string           写入请求日志到文件    -version                           显示版本信息    -v, -verbose                       显示详细信息    -vv                                 显示额外的详细信息    -tv, -templates-version             显示已安装的模板版本 升级:    -update                             更新Nuclei到最新版本    -ut, -update-templates             更新Nuclei模板到最新版    -ud, -update-directory string       覆盖安装模板    -duc, -disable-update-check         禁用更新 统计:    -stats                             显示正在扫描的统计信息    -sj, -stats-json                   将统计信息以JSONL格式输出到文件    -si, -stats-inerval int             显示统计信息更新的间隔秒数(默认:5)    -m, -metrics                       显示Nuclei端口信息    -mp, -metrics-port int             更改Nuclei默认端口(默认:9092)

2.更新Nuclei

使用nuclei -update命令来将您的Nuclei更新到最新版本。

使用nuclei -update-templates命令来将您的核心模板nuclei-templates更新到最新版本,另外Nuclei本身每24小时也会进行一次自动更新。

yaml是什么?

是一个可读性高,用来表达数据序列化的格式。

切记

YAML不允许使用制表符

元素部分之间必须有空间

YAML区分大小写

YAML文档标准后缀名是: 1、.yaml 2、.yml

yaml模板内容参数解读如下:

id: 定义了该漏洞验证请求的唯一标识符。 info: 定义了漏洞验证请求的相关信息。 name: 指定了漏洞验证请求的名称。 author: 指定了该漏洞验证请求的作者。 severity: high: 指定了该漏洞验证请求的严重程度。 description: 提供描述信息。 requests: 定义了一个请求列表,包含了漏洞验证请求。 raw: 定义了一个原始请求(HTTP请求)。 matchers-condition: and: 定义了匹配条件的逻辑关系,表示所有匹配条件都必须满足。 matchers: 定义了一组匹配条件,用于验证漏洞存在性。 type: word: 指定了匹配条件的类型为关键词匹配。 part: header: 指定了关键词匹配的范围是HTTP头部。 words: 指定了需要匹配的关键词。 type: status: 指定了匹配条件的类型为状态码。 status: 指定了需要匹配的HTTP响应状态码,表示需要匹配HTTP响应状态码是否为200。

yaml POC模板

id: Vulnerability template ​ info: name: Vulnerability template author: I9nite severity: high description:描述信息 requests: - raw: GET   matchers-condition: and   matchers:     - type: word       part: header       words:         - 'There are loopholes'     - type: status       status:         - 200
          

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/156821.html

(0)
上一篇 2025-02-09 21:00
下一篇 2025-02-09 21:05

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信