nuclei-poc入门编写实例

nuclei-poc入门编写实例

1、yaml

简单来说yaml也是一种标记语言,它的设计目标是易于阅读和编写,同时也便于计算机解析。nuclei的poc是基于yaml编写的,我们可以快速的编写一个0day或者nday漏洞的POC。个人感觉比自己写用pyhton的request库,写一堆if…else…做健壮性判断简洁,也简单

而却nuclei是根据go语言开发的,他比python的并发性要好很多,也就是做批量漏洞验证的时候,会比python快很多。

2、POC语法

1) id

第一行就是我们poc的id,注意id的值是不能有空格的

例如:

id: cve-2024-44335   #这里随便写的,主要是格式不能有空格

yaml中是 key冒号+空格+值的

2)信息介绍

下面是我们的介绍信息注意:yaml和python的代码块的方式很相似,但yaml是不允许有tab的,我们只能用空格对齐,表示代码块

info: 
  name: test                  #这里是漏洞的名字 自定义的
  author: LINGX5              #作者名字
  severity: high              #漏洞的危害等级
3)http请求

http请求的封装 nuclei中的变量用{{}}包裹

http: 
  - method: GET           #http的请求方法
    path:
      - "{{BaseURL}}"    #url路径,会从命令执行的参数中读取

例:如果命令输入的是 -u https://example.com:443/foo/bar.php 变量对应的值

{{BaseURL}}https://example.com:443/foo/bar.php
{{RootURL}}https://example.com:443
{{Hostname}}example.com:443
{{Host}}example.com
{{Port}}443
{{Path}}/foo
{{File}}bar.php
{{Scheme}}https

BaseURL是最全的,比较建议。但也看个人poc需要

4) matchers匹配

matchers匹配字段,可以匹配响应的结果

matchers: 
  - type: word       #匹配类型
    words:           #定义关键字数组
      - "百度"
    part: body       #匹配的地方,一般就body和headers

匹配的的type有

1. word 关键字符串
2. regex 正则表达式
3. DSL   匹配器

3、百度测试为例

完整的poc

id: baidu_test

info:
  name: baidu test
  author: LINGX5
  severity: low
http: 
  - method: GET
    path:
      - "{{BaseURL}}"
    matchers: 
      - type: word
        words: 
          - "百度"
        part: body

这段代码就是 定义了id为baidu_test的poc。
发送GET {{BaseURL}}请求,相应体匹配 关键词 百度。
匹配到输出结果,匹配不到不输出

1)测试POC正确性
#这里 -t 后边换成 自己的yaml poc 地址
.\nuclei.exe -t "D:\WebSafe\tools\漏洞扫描工具\nuclei\NucleiTP\MyPOC\test.yaml" -validate

a) 正确的结果:

最后结果 No results found. Better luck next time! 表示没有语法错误

这句话是因为 没有url匹配规则,我们用 -u 参数 传进匹配的url取

b) 错误的结果: 根据报错去调试poc

显示 mandatory ‘author’ field is missing 就是因为我把 info中的author字段删了,报的这个错。

报什么错问 gpt 或者 百度 去纠正就好

.\nuclei.exe -t "D:\WebSafe\tools\漏洞扫描工具\nuclei\NucleiTP\MyPOC\test.yaml" -u http://www.baidu.com 

有一条匹配结果 [baidu_test] [http] [low] http://www.baidu.com

4 、debug调试

我们还可以使用-debug参数进行调试看具体输出结果

.\nuclei.exe -t "D:\WebSafe\tools\漏洞扫描工具\nuclei\NucleiTP\MyPOC\test.yaml" -u http://www.baidu.com -debug

看到发送的具体请求包

看到响应包里的多个匹配值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零星_AagT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值