Contents
This tool can also be used for attacks. Use it only on systems you own or have written permission to test.
Nuclei sends requests following the steps in YAML files called templates, then reads the responses to find vulnerabilities and misconfigurations. The templates live in an official template library, and if you don’t specify any, Nuclei runs most of them at once.
This review is for people who want to check their own websites and servers for known weaknesses. After reading it, you can do the following:
- Run Nuclei against the practice app OWASP Juice Shop
- Narrow down templates by severity or tag
- Limit how many requests you send and stop traffic to outside servers
What Nuclei does
- Checks for known vulnerabilities: There are templates for individual vulnerabilities with CVE IDs.
- Checks for misconfigurations and exposures: Some templates look for information that should not be public (in the official examples, the
exposures/folder). - Custom templates: Write the steps in YAML to build checks for your own service.
- Several protocols: Besides HTTP, there are templates for DNS, TCP, SSL, and more.
What it sends to the target
Many templates send the same kind of request an exploit would and judge the result from the response. According to the official docs, the defaults are:
| Item | Default |
|---|---|
| Request rate | Up to 150 requests per second (change with -rl) |
| Concurrency | Up to 25 templates in parallel (change with -c) |
| Excluded tags | dos, fuzz, bruteforce, and others (listed in .nuclei-ignore) |
| Need an extra flag | Code templates (-code), headless templates (-headless), fuzzing (-dast) |
| Outside servers | Uses interactsh servers (such as oast.pro) for OAST |
Templates that put load on the target are excluded by default. Even so, the default rate is heavy for a small server, and the target receives a large number of attack-like requests. Pointed at the wrong target, Nuclei can take a service down or be treated as an attack. That is why this review rates its impact as “high.”
OAST templates make the target connect to an outside interactsh server to confirm a result. To keep traffic from going to outside servers, add -ni.
Try it safely against Juice Shop
-
Start Juice Shop on your own computer by following the Juice Shop review.
-
Download the zip for your operating system from the releases page and unpack it. If you have Go installed, you can also use this command:
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest -
Download the templates. Nuclei checks for new templates on every run and downloads them automatically when there are any. To update them manually, run:
nuclei -update-templates -
Scan Juice Shop with a low request rate and without outside servers:
nuclei -u http://localhost:3000 -rl 10 -ni -
Each finding appears on one line with the template ID, protocol, severity, and URL.
Common options
| Goal | Option |
|---|---|
| Specify one target | -u <URL> |
| Pass targets in a file | -l <file> |
| Filter by severity | -s critical,high |
| Filter by tag | -tags cve |
| Use only certain templates or folders | -t <path> |
| Use only templates that match detected technologies | -as |
| Set requests per second | -rl <number> |
| Save results to a file | -o <file> |
Nuclei also runs in Docker. The container can’t see your local files, so mount a volume when you use template files or target lists.
Cautions
- Use Nuclei only on your own sites, on targets you have written permission to test, and on practice targets such as Juice Shop. An unauthorized scan looks like an attack to the target.
- Even for your own site, your hosting or cloud provider’s terms may restrict scanning. Check them before you run it.
- On production, lower the rate with
-rland run scans at quiet times. - The template library is written by the community. Results can include false positives, so confirm them yourself before acting.
Read next
Sources
- Official repository (projectdiscovery/nuclei)github.com/projectdiscovery/nuclei
- Docs: Installing Nucleidocs.projectdiscovery.io/opensource/nuclei/install
- Docs: Running Nucleidocs.projectdiscovery.io/opensource/nuclei/running
- Official template library (nuclei-templates)github.com/projectdiscovery/nuclei-templates
- Templates excluded by default (.nuclei-ignore)github.com/projectdiscovery/nuclei-templates/blob/main/.nuclei-ignore
- Releasesgithub.com/projectdiscovery/nuclei/releases
Checked on 2026-10-24
Similar tools
OWASP Juice Shop
Impact Local onlyAn intentionally vulnerable online shop for practice. Run it on your own computer to learn how web vulnerabilities work and to try out security testing tools.
- Purpose
- Learning
- Type
- Practice lab
- Difficulty
- Beginner
- License
- PermissiveMIT
- Category
- Learning and practice labs / Web security
Nmap
Impact Reaches othersThe standard scanner for finding hosts on a network, the ports they have open, and the services running on them.
- Purpose
- Audit
- Type
- Command line
- Difficulty
- Intermediate
- License
- Check termsNmap Public Source License
- Category
- Network / Reconnaissance
ZAP
Impact Can harm othersA free web app scanner that sits between your browser and a web app, records the traffic, and looks for vulnerabilities. Formerly OWASP ZAP, now ZAP by Checkmarx.
- Purpose
- Audit
- Type
- Desktop app
- Difficulty
- Intermediate
- License
- PermissiveApache-2.0
- Category
- Web security / Vulnerability scanning