Prerequisites
Requirements: - Node.js v18 or higher - npm, pnpm, or yarn
Installation
Initialize configuration
Create a vulcn.config.yml file with default plugins:This creates a config file with the official detection plugins pre-configured:# vulcn.config.yml
version: "1"
plugins:
- name: "@vulcn/plugin-payloads"
config:
builtin: true
- name: "@vulcn/plugin-detect-xss"
config:
detectDialogs: true
detectConsole: true
severity: high
settings:
browser: chromium
headless: true
Install browsers (optional)
Vulcn uses Playwright for browser automation. Browsers are installed automatically on first use, but you can install them manually:Or install all browsers:
Record Your First Session
Start recording
Open a browser and record your interactions with the target application:vulcn record https://example.com --output session.vulcn.yml
The browser opens and records everything you do. Fill out forms, click
buttons, navigate pages—Vulcn captures it all.
Interact with the app
In the browser:
- Navigate to a page with input fields
- Fill out a form (login, search, comment, etc.)
- Submit the form
- Close the browser when done
Session saved
Your interactions are saved to session.vulcn.yml:name: Session 2026-02-06
startUrl: https://example.com
browser: chromium
steps:
- id: step_001
type: navigate
url: https://example.com
timestamp: 1707192000000
- id: step_002
type: fill
selector: input[name="search"]
value: test query
timestamp: 1707192005000
- id: step_003
type: click
selector: button[type="submit"]
timestamp: 1707192010000
Run Security Tests
Execute tests
Run the recorded session with security payloads:vulcn run session.vulcn.yml
By default, Vulcn uses the xss-basic payload set and the @vulcn/plugin-detect-xss plugin for detection. Choose specific payloads
Test with specific payload sets:vulcn run session.vulcn.yml --payload xss-basic sqli-basic
Or use PayloadsAllTheThings:vulcn run session.vulcn.yml --payload payloadbox:xss
Review findings
If vulnerabilities are found, you’ll see output like:🔍 Running security tests
Session: Session 2026-02-06
Payloads: xss-basic
Payload count: 15
Browser: chromium
Headless: true
⚠️ FINDING: XSS Confirmed: alert() executed
Step: step_002
Payload: <script>alert('XSS')</script>...
URL: https://example.com/search
📊 Results
Steps executed: 3
Payloads tested: 45
Duration: 12.3s
🚨 1 findings detected!
[HIGH] XSS Confirmed: alert() executed
Type: xss
Step: step_002
URL: https://example.com/search
Payload: <script>alert('XSS')</script>
Explore Payloads
List all available built-in payloads:
Output:
📦 Available Payloads
XSS
xss-basic Basic XSS payloads (15 payloads)
xss-event Event handler XSS (12 payloads)
xss-svg SVG-based XSS (8 payloads)
xss-polyglot Polyglot XSS payloads (5 payloads)
SQL Injection
sqli-basic Basic SQLi payloads (10 payloads)
sqli-error Error-based SQLi (8 payloads)
sqli-blind Blind SQLi payloads (6 payloads)
sqli-union UNION-based SQLi (5 payloads)
Other
ssrf-basic SSRF payloads (5 payloads)
xxe-basic XXE payloads (4 payloads)
cmd-basic Command injection (6 payloads)
path-traversal Path traversal (8 payloads)
open-redirect Open redirect (4 payloads)
Total: 13 payload sets, 91 payloads
Next Steps