How abhi267266/nuclei works
Nuclei is a template-driven vulnerability scanner. A user supplies targets and YAML templates through the CLI; the runtime prepares inputs and templates, executes protocol checks concurrently, evaluates matches, and emits findings. The repository also supports workflows, request fuzzing, browser-based checks, and integrations for exporting or tracking results. The graph reflects the documented product and sampled entry-point and engine code; detailed wiring for several subsystems was not sampled, so their internal links are omitted.
Main entry points: runner.go Scan Runner · exec.go Template Execution · main.go Nuclei CLI · loader Template Loader
Components 20
CLI and Setup
- Nuclei CLI
cmd/nuclei/main.go - Scan Runner
internal/runner/runner.go - Configuration
internal/configuration/flags.go
Inputs and Templates
- Target Inputs
pkg/input - Input Formats
pkg/input/formats - Template Catalog
pkg/catalog - Template Loader
pkg/loader - Template Parser
pkg/templates - Workflow Definitions
pkg/workflows/workflows.go
Scan Runtime
- Execution Engine
pkg/core/engine.go - Template Execution
pkg/tmplexec/exec.go - Protocol Checks
pkg/protocols/protocols.go - HTTP Protocol
pkg/protocols/http/http.go - Browser Checks
pkg/protocols/headless/engine/engine.go - Request Fuzzing
pkg/fuzz/fuzz.go - Match and Extract
pkg/operators/operators.go
Findings and Integrations
- Finding Output
pkg/output/output.go - Exports and Trackers
pkg/reporting/reporting.go
Other components
- Scanner User
- External Services
Connections 19
- Scanner User → Nuclei CLI: starts scan
- Nuclei CLI → Configuration: loads options
- Nuclei CLI → Scan Runner: runs enumeration
- Scan Runner → Target Inputs: loads targets
- Input Formats → Target Inputs: generates inputs
- Scan Runner → Template Loader: loads definitions
- Template Loader → Template Catalog: reads templates
- Template Loader → Template Parser: parses templates
- Scan Runner → Execution Engine: executes scan
- Execution Engine → Template Execution: dispatches templates
- Template Execution → Protocol Checks: runs checks
- Protocol Checks → HTTP Protocol: dispatches HTTP
- Protocol Checks → Browser Checks: dispatches browser
- Template Execution → Workflow Definitions: runs workflows
- HTTP Protocol → Request Fuzzing: fuzzes requests
- Template Execution → Match and Extract: evaluates responses
- Execution Engine → Finding Output: emits findings
- Finding Output → Exports and Trackers: forwards findings
- Exports and Trackers → External Services: exports or tracks