> For the complete documentation index, see [llms.txt](https://riteshs4hu.gitbook.io/infosec-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://riteshs4hu.gitbook.io/infosec-notes/vulnerability-scanner/nuclei.md).

# Nuclei

**Nuclei** is a fast vulnerability scanner developed by [ProjectDiscovery](https://projectdiscovery.io/). It uses YAML-based templates to find vulnerabilities in web applications, APIs, cloud infrastructure, etc.

* [GitHub Repository: Nuclei](https://github.com/projectdiscovery/nuclei)
* [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates)
* [Nuclei Templates Lab](https://github.com/projectdiscovery/nuclei-templates-labs)
* [ProjectDiscovery Platform](https://projectdiscovery.io/)

***

### **Key Features**

* **Template-Based Scanning** – Use or create templates to define specific detection logic.
* **High Performance** – Built with Go, supports massive-scale scanning.
* **Silent Mode and JSON Output** – Ideal for automation and CI/CD.
* **Target Input** – Accepts URLs from command line, files, stdin.
* **Tag and Severity Filtering** – Run templates based on tags and severity levels.

***

### **Installation**

Install Nuclei using the following command:

```bash
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
```

Move the binary to a directory in your PATH:

```bash
sudo cp ~/go/bin/nuclei /usr/local/bin/
```

Verify installation:

```bash
nuclei -h
```

***

### **Template Installation and Updates**

To install or update templates:

```bash
nuclei -targetpdate-templates
```

***

### **Basic Usage Examples**

* **Scan a Single URL**

  ```bash
  nuclei -target https://example.com
  ```
* **Scan Multiple URLs from a File**

  ```bash
  nuclei -list urls.txt
  ```
* **Run Specific Template or Directory**

  ```bash
  nuclei -target https://example.com -t javascript/cves/2021/CVE-2021-35394.yaml
  ```
* ```bash
  nuclei -target https://example.com -t http/cves/
  ```
* **Filter Templates by Tags**

  ```bash
  nuclei -target https://example.com -tags cve,token
  ```
* **Filter by Severity**

  ```bash
  nuclei -target https://example.com -severity critical,high
  ```
* **Output in JSON Format**

  ```bash
  nuclei -target https://example.com -json -o output.json
  ```
* **Silent Mode (Only Output Results)**

  ```bash
  nuclei -target https://example.com -silent
  ```
* **Use Custom Headers**

  ```bash
  nuclei -target https://example.com -H "Authorization: Bearer <token>"
  ```
* **Scan Using Custom Rate Limit**

  ```bash
  nuclei -target https://example.com -rl 50
  ```
* **Using a Proxy**

  ```bash
  nuclei -target https://example.com -proxy http://127.0.0.1:8080
  ```
