Documentation Index
Fetch the complete documentation index at: https://mintlify.com/projectdiscovery/nuclei/llms.txt
Use this file to discover all available pages before exploring further.
File protocol templates enable scanning and analyzing local files for secrets, misconfigurations, and sensitive data patterns.
Basic file request
id: basic-file-scan
info:
name: Basic File Scan
author: pdteam
severity: info
file:
- extensions:
- txt
- log
matchers:
- type: word
words:
- "password"
- "secret"
File components
Extensions
File extensions to scan. Use all to scan all files.file:
- extensions:
- .env
- .config
- .yml
- .yaml
Scan all files:file:
- extensions:
- all
Deny list
Files, directories, or extensions to exclude from scanning.file:
- extensions:
- all
denylist:
- .jpg
- .png
- .gif
- node_modules/
- .git/
Max size
Maximum file size to scan. Set to no for unlimited.file:
- extensions:
- all
max-size: 10MB
Archive scanning
Enable scanning inside archive files (zip, tar, etc.).file:
- extensions:
- all
archive: true
MIME type detection
Enable MIME type-based file detection.file:
- extensions:
- all
mime-type: true
Recursive scanning
Disable recursive directory scanning.file:
- extensions:
- all
no-recursive: true
Example: AWS keys detection
id: aws-keys-file
info:
name: AWS Access Keys in Files
author: pdteam
severity: high
description: Detects exposed AWS access keys in local files
file:
- extensions:
- all
matchers:
- type: regex
regex:
- "(?i)aws(.{0,20})?['\"][0-9a-zA-Z\\/+]{40}['\"]"
Example: Private key detection
id: private-keys-file
info:
name: Private Key Detection
author: pdteam
severity: critical
description: Detects private keys in local files
file:
- extensions:
- all
matchers:
- type: word
words:
- "BEGIN RSA PRIVATE KEY"
- "BEGIN DSA PRIVATE KEY"
- "BEGIN EC PRIVATE KEY"
- "BEGIN OPENSSH PRIVATE KEY"
- "BEGIN PGP PRIVATE KEY"
condition: or
Example: Environment file scan
id: env-file-secrets
info:
name: Environment File Secrets
author: pdteam
severity: high
description: Scans .env files for sensitive information
file:
- extensions:
- .env
- env
extractors:
- type: regex
name: database_credentials
regex:
- "DB_PASSWORD=(.+)"
- "DATABASE_URL=(.+)"
group: 1
- type: regex
name: api_keys
regex:
- "API_KEY=(.+)"
- "SECRET_KEY=(.+)"
group: 1
Example: Configuration files
id: config-file-scan
info:
name: Configuration File Scanner
author: pdteam
severity: medium
description: Scans configuration files for sensitive data
file:
- extensions:
- .yml
- .yaml
- .json
- .xml
- .conf
- .config
max-size: 5MB
matchers:
- type: regex
regex:
- "password\\s*[:=]\\s*[^\\s]+"
- "api[_-]?key\\s*[:=]\\s*[^\\s]+"
- "secret\\s*[:=]\\s*[^\\s]+"
condition: or
Example: Source code secrets
id: source-code-secrets
info:
name: Secrets in Source Code
author: pdteam
severity: high
description: Detects hardcoded secrets in source code
file:
- extensions:
- .py
- .js
- .java
- .go
- .php
- .rb
denylist:
- node_modules/
- vendor/
- .git/
matchers:
- type: regex
regex:
- "(?i)(password|passwd|pwd)\\s*=\\s*[\"'](.+?)[\"
']"
- "(?i)api[_-]?key\\s*=\\s*[\"'](.+)[\"']"
condition: or
File response parts
Complete file contents (default)matchers:
- type: word
part: raw
words:
- "password"
File pathextractors:
- type: dsl
dsl:
- path
Matchers for files
matchers:
# Word matcher
- type: word
words:
- "api_key"
- "secret_token"
condition: or
# Regex matcher
- type: regex
regex:
- "[a-zA-Z0-9]{32}"
# Binary matcher
- type: binary
binary:
- "504B0304" # ZIP signature
extractors:
# Regex extraction
- type: regex
name: credentials
regex:
- 'password="(.+?)"'
group: 1
# All matches
- type: regex
name: all_secrets
regex:
- "(?i)(password|secret|key)\\s*[:=]\\s*(.+)"
Running file templates
File templates require a directory path instead of URL:
# Scan current directory
nuclei -t file-template.yaml -target .
# Scan specific directory
nuclei -t file-template.yaml -target /path/to/project
# Scan multiple directories
echo "/path/to/dir1" | nuclei -t file-template.yaml
echo "/path/to/dir2" | nuclei -t file-template.yaml
Best practices
Use appropriate extensions
Limit extensions to relevant file types to improve performance:file:
- extensions:
- .env
- .config
# Better than scanning 'all'
Prevent scanning large files:
Exclude irrelevant directories:file:
- denylist:
- node_modules/
- .git/
- vendor/
Next steps
Matchers
Complete matcher reference
Extractors
Data extraction guide
Helper functions
DSL function reference
Best practices
Template quality guidelines