Skip to main content

Plugins Array

Plugins are configured in the plugins array:
plugins:
  - name: "@vulcn/plugin-payloads"
    config:
      builtin: true
    enabled: true

  - name: "@vulcn/plugin-detect-xss"
    config:
      detectDialogs: true

Plugin Entry Schema

FieldTypeDescription
namestringPlugin package name (required)
configobjectPlugin-specific configuration
enabledbooleanEnable/disable the plugin (default: true)

Official Plugins

@vulcn/plugin-payloads

Handles all payload loading:
- name: "@vulcn/plugin-payloads"
  config:
    # Include built-in payloads
    builtin: true

    # Only include specific payload sets
    include:
      - xss-basic
      - sqli-basic

    # Exclude specific payload sets
    exclude:
      - xss-polyglot

    # Fetch from PayloadsAllTheThings
    payloadbox:
      - xss
      - sql-injection

    # Load custom payload files
    files:
      - ./my-payloads.yml
      - ./enterprise-payloads.json
OptionTypeDefaultDescription
builtinbooleantrueInclude built-in payloads
includestring[]-Only include these payload sets
excludestring[]-Exclude these payload sets
payloadboxstring[]-Fetch from PayloadsAllTheThings
filesstring[]-Custom payload file paths

@vulcn/plugin-detect-xss

Execution-based XSS detection:
- name: "@vulcn/plugin-detect-xss"
  config:
    # Monitor dialogs (alert, confirm, prompt)
    detectDialogs: true

    # Monitor console markers
    detectConsole: true

    # Console marker prefix
    consoleMarker: "VULCN_XSS:"

    # DOM mutation detection (experimental)
    detectDomMutation: false

    # Alert patterns to match
    alertPatterns:
      - "XSS"
      - "1"
      - "document.domain"

    # Finding severity
    severity: high
OptionTypeDefaultDescription
detectDialogsbooleantrueMonitor alert/confirm/prompt
detectConsolebooleantrueDetect console markers
consoleMarkerstring"VULCN_XSS:"Console marker prefix
detectDomMutationbooleanfalseCheck for injected scripts
alertPatternsstring[]["XSS", "1", ...]Patterns to match in alerts
severitystring"high"Finding severity level

@vulcn/plugin-detect-reflection

Pattern-based reflection detection:
- name: "@vulcn/plugin-detect-reflection"
  config:
    # Detection modes
    detectBody: true
    detectScript: true
    detectAttribute: true

    # Minimum payload length to check
    minPayloadLength: 4

    # Severity by context
    bodySeverity: low
    scriptSeverity: medium
    attributeSeverity: medium

    # Dangerous patterns to watch for
    dangerousPatterns:
      - onerror
      - onclick
      - javascript:
OptionTypeDefaultDescription
detectBodybooleantrueDetect reflection in HTML body
detectScriptbooleantrueDetect reflection in script context
detectAttributebooleantrueDetect reflection in attributes
minPayloadLengthnumber4Skip payloads shorter than this
bodySeveritystring"low"Severity for body reflection
scriptSeveritystring"medium"Severity for script reflection
attributeSeveritystring"medium"Severity for attribute reflection

Disabling Plugins

Temporarily disable a plugin without removing it:
- name: "@vulcn/plugin-detect-reflection"
  enabled: false
  config:
    detectBody: true
Or use the CLI:
vulcn plugin disable @vulcn/plugin-detect-reflection

Plugin Loading Order

Plugins are loaded in the order they appear in the config file. This affects:
  1. Payload loading (first payload plugin provides payloads first)
  2. Hook execution (hooks run in plugin order)
  3. Finding collection (findings accumulated in order)
Keep detection plugins after the payloads plugin so payloads are loaded before detection begins.