git clone https://github.com/ComeOnOliver/skillshub
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/TerminalSkills/skills/nuclei-scanner" ~/.claude/skills/comeonoliver-skillshub-nuclei-scanner && rm -rf "$T"
skills/TerminalSkills/skills/nuclei-scanner/SKILL.mdNuclei Scanner
Overview
Nuclei is a fast, template-based vulnerability scanner by ProjectDiscovery. Instead of running monolithic scanners, Nuclei uses YAML templates — each one checks for a specific vulnerability, misconfiguration, or exposure. Community maintains 8000+ templates covering CVEs, default credentials, exposed panels, misconfigurations, and more. Runs in CI, scripted pipelines, or manual assessments.
When to Use
- Security assessment of web applications before deployment
- Checking infrastructure for known CVEs and misconfigurations
- Continuous security scanning in CI/CD pipelines
- Bug bounty reconnaissance and vulnerability discovery
- Compliance checks (exposed admin panels, default credentials, SSL issues)
Instructions
Setup
# Install via Go go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest # Or download binary curl -sL https://github.com/projectdiscovery/nuclei/releases/latest/download/nuclei_linux_amd64.zip -o nuclei.zip unzip nuclei.zip # Update templates (8000+ community templates) nuclei -update-templates
Basic Scanning
# Scan a single target with all templates nuclei -u https://example.com # Scan with specific severity nuclei -u https://example.com -severity critical,high # Scan multiple targets from a file nuclei -l targets.txt -severity critical,high,medium # Scan specific template categories nuclei -u https://example.com -tags cve,misconfig,exposure # Scan with rate limiting (respectful scanning) nuclei -u https://example.com -rate-limit 50 -concurrency 10
Custom Templates
# templates/exposed-env.yaml — Check for exposed .env files id: exposed-env-file info: name: Exposed .env File author: terminal-skills severity: high description: Checks if .env file is publicly accessible tags: misconfig,exposure http: - method: GET path: - "{{BaseURL}}/.env" matchers-condition: and matchers: - type: word words: - "DB_PASSWORD" - "API_KEY" - "SECRET" condition: or - type: status status: - 200
# templates/api-key-leak.yaml — Detect API keys in responses id: api-key-in-response info: name: API Key Leaked in Response author: terminal-skills severity: medium tags: exposure,api http: - method: GET path: - "{{BaseURL}}/api/config" - "{{BaseURL}}/api/settings" - "{{BaseURL}}/config.json" matchers: - type: regex regex: - "sk_live_[a-zA-Z0-9]{24}" # Stripe live key - "AKIA[0-9A-Z]{16}" # AWS access key - "ghp_[a-zA-Z0-9]{36}" # GitHub token extractors: - type: regex regex: - "sk_live_[a-zA-Z0-9]{24}" - "AKIA[0-9A-Z]{16}"
CI/CD Integration
# .github/workflows/security-scan.yml name: Security Scan on: schedule: - cron: "0 6 * * 1" # Weekly Monday 6 AM workflow_dispatch: jobs: nuclei-scan: runs-on: ubuntu-latest steps: - uses: projectdiscovery/nuclei-action@main with: target: https://myapp.com flags: "-severity critical,high -tags cve,misconfig" output: nuclei-report.txt - name: Alert on findings if: success() run: | if [ -s nuclei-report.txt ]; then echo "⚠️ Vulnerabilities found!" cat nuclei-report.txt # Send to Slack/email fi
Programmatic Usage (Go/Python)
# scan.py — Run Nuclei from Python and parse results import subprocess import json def run_nuclei_scan(target: str, severity: str = "critical,high") -> list[dict]: """Run Nuclei scan and return structured results.""" result = subprocess.run( ["nuclei", "-u", target, "-severity", severity, "-json", "-silent"], capture_output=True, text=True, ) findings = [] for line in result.stdout.strip().split("\n"): if line: findings.append(json.loads(line)) return findings # Usage findings = run_nuclei_scan("https://example.com") for f in findings: print(f"[{f['info']['severity']}] {f['info']['name']} — {f['matched-at']}")
Examples
Example 1: Pre-deployment security check
User prompt: "Before we go live, scan our staging site for any critical vulnerabilities or misconfigurations."
The agent will run Nuclei with critical/high severity templates, check for exposed files, default credentials, known CVEs, and generate a report with remediation steps.
Example 2: Custom template for internal API
User prompt: "Write a Nuclei template that checks if our internal admin endpoints are accessible without auth."
The agent will create a YAML template that hits admin endpoints, checks for 200 status without auth headers, and flags exposed admin panels.
Guidelines
- Always get authorization — only scan targets you own or have written permission to test
- Start with
— focus on what matters first-severity critical,high - Rate limit scans —
to avoid overwhelming targets-rate-limit 50 - Use
for targeted scans —-tags
,cve
,misconfig
,exposuredefault-login - JSON output for automation —
flag for parseable results-json - Custom templates for your app — community templates are generic; write app-specific checks
- Update templates regularly —
gets new CVE checksnuclei -update-templates - Headless templates for JS apps — some checks require browser rendering
- Never scan production during peak hours — schedule scans for low-traffic windows