Nuclei Tips

最近使用nuclei比较多,总结一下一些常用的命令和如何配置nuclei能让这个工具更好用

常用参数

  1. -u:测试单个url时使用,后面跟一个url地址
  2. -l:进行批量测试时使用,后面跟一个写了url地址的文件路径
  3. -t:指定使用的PoC模版
  4. -w:指定使用的workflow模版,workflow模版路径为nuclei-template/workflow
  5. -tags:指定使用带有指定tag的PoC模版
  6. -o:将结果输出到一个文件中

以上这些就是会经常用到的一些参数

nuclei-template存放路径

nuclei-template是nuclei的一个非常丰富的官方PoC库,但在使用过程中有一些小问题,就是nuclei-template会默认下载至用户的根目录下

  • Linux: /home/user_name/nuclei-template
  • macOS: /Users/user_name/nuclei-template
  • Windows: C:\Users\user_name\nuclei-template

很显然,这对一些人来说就很难受,比如我。当然,要修改这个也非常简单。当你运行过一次nuclei之后,nuclei会在用户跟目录下生成一个存放配置文件的路径.config/nuclei,这个路径下通常会有如下几个文件

  1. config.yaml
  2. .nuclei-ignore
  3. .templates-config.json

打开.templates-config.json,通过修改nuclei-templates-directory的值就可以将nuclei-template的默认保存路径进行修改

1
2
3
4
5
6
7
8
{
"nuclei-templates-directory":"/Users/your_name/nuclei-templates",
"nuclei-templates-version":"9.0.1",
"nuclei-version":"2.7.0",
"nuclei-ignore-hash":"8f61b6d0f735f59c10fc642c688c6624",
"nuclei-latest-version":"2.7.0",
"nuclei-templates-latest-version":"9.0.1"
}

排除不想要的template

nuclei-template因为太丰富了,在使用过程中会像AWVS一样扫描出很多无法利用且我们也不关注的问题,这时候就需要用到刚刚配置路径下的.nuclei-ignore配置文件。
整个文件使用了YAML结构,修改起来也非常简单。原文件中一共就给了两部分tagsfiles,可以通过指定tag名称与文件路径排除不想使用的模版文件。下面是例子

1
2
3
4
5
6
7
8
9
10
11
12
tags:
- "fuzz"
- "dos"
- "xss"

files:
- misconfiguration/http-missing-security-headers.yaml
- ssl/
- dns/ptr-fingerprint.yaml
- technologies/nginx/
- miscellaneous/options-method.yaml
- miscellaneous/old-copyright.yaml

nuclei-ignore中的files支持通过指定路径,直接排除该路径下的所有模版文件,这样就可以批量的排除不想使用的模版啦。