CLI Reference

Dalfox is organised into four subcommands. The default (when you just pass a target) is scan.

dalfox [SUBCOMMAND] [TARGET] [FLAGS]
Subcommand Purpose
scan Scan targets for XSS (default when omitted)
server Run a REST API server
payload List or fetch built-in/remote payloads
mcp Run a Model Context Protocol stdio server
help Print help for any subcommand

Global flags

Flag Description
--config <FILE> Path to a config file (TOML or JSON). Overrides default search path.
--debug Enable debug logging.
-h, --help Print help.
-V, --version Print version.

Exit codes:

Code Meaning
0 Success, no findings
1 Success, findings reported
2 Input / config / runtime error

dalfox scan

Scan targets for XSS. Omitting the subcommand is equivalent.

dalfox scan [TARGETS]... [FLAGS]

Input

Flag Short Default Description
--input-type -i auto auto, url, file, pipe, raw-http

Output

Flag Short Default Description
--format -f plain plain, json, jsonl, markdown, sarif, toml
--output -o Write output to file
--include-request false Include HTTP request in output
--include-response false Include response body in output
--include-all false Shorthand for both include flags
--no-color false Disable ANSI colour
--silence -S false Emit only findings to STDOUT
--dry-run false Discover and plan without sending payloads
--stream-findings false Emit each finding the moment it is verified instead of after the end-of-scan summary (plain format only; auto-disabled with --output, --limit, --only-poc)
--poc-type plain plain, curl, httpie, http-request
--limit Cap total results shown
--limit-result-type all all, v, r, a — which types count toward --limit
--only-poc Comma-separated filter: v, r, a

Target shaping

Flag Short Default Description
--param -p Parameter to analyse; supports name:location (locations: query, body, json, cookie, header)
--data -d Request body
--headers -H Extra HTTP header (repeatable)
--cookies Cookie (repeatable)
--method -X GET HTTP method override
--user-agent Custom User-Agent
--cookie-from-raw Load cookies from a raw HTTP request file

Scope

Flag Default Description
--include-url Regex pattern(s) of URLs to include
--exclude-url Regex pattern(s) of URLs to exclude
--ignore-param Parameter name(s) to skip
--out-of-scope Wildcard domain patterns to skip
--out-of-scope-file File listing out-of-scope domains

Discovery

Flag Default Description
--only-discovery false Stop after discovery, no XSS payloads
--skip-discovery false Skip all discovery
--skip-reflection-header false Skip header-based reflection checks
--skip-reflection-cookie false Skip cookie-based reflection checks
--skip-reflection-path false Skip path-based reflection checks

Mining

Flag Short Default Description
--mining-dict-word -W Parameter wordlist file
--remote-wordlists Remote sources: burp, assetnote
--skip-mining false Skip all mining
--skip-mining-dict false Skip dictionary mining
--skip-mining-dom false Skip DOM mining

Network

Flag Short Default Description
--timeout 10 Per-request timeout in seconds (network only; does not bound total scan time)
--scan-timeout 0 Hard wall-clock cap per target for the scan stage (post-preflight), in seconds. Aborts a target once exceeded — useful when many sequential phases each pay the per-request --timeout cost against a partially-hung endpoint. 0 disables.
--delay 0 Delay between requests (ms)
--proxy Proxy URL (http://, socks5://)
--follow-redirects -F false Follow 3xx responses
--ignore-return HTTP status codes to ignore

Engine

Flag Default Description
--workers 50 Concurrent workers per target
--max-concurrent-targets 50 Global concurrent targets
--max-targets-per-host 100 Per-host cap

XSS scanning

Flag Short Default Description
--encoders -e url,html Comma-separated encoders
--remote-payloads portswigger, payloadbox
--custom-blind-xss-payload Custom blind payload template file
--blind -b Blind XSS callback URL
--custom-payload Custom payload file
--only-custom-payload false Use only custom payloads
--custom-alert-value 1 Value inside alert()/prompt()/confirm()
--custom-alert-type none none or str
--inject-marker Replace this token with payloads (e.g. FUZZ)
--skip-xss-scanning false Skip payload injection
--deep-scan false Keep testing after first finding
--sxss false Enable Stored XSS mode
--sxss-url Retrieval URL for SXSS
--sxss-method GET Retrieval method
--sxss-retries 3 Retries on the retrieval URL when fetching stored output
--max-payloads-per-param 0 Cap payloads tested per parameter (0 = no cap)
--skip-ast-analysis false Skip AST DOM-XSS
--hpp false HTTP Parameter Pollution

WAF

Flag Default Description
--waf-bypass auto auto, force, off
--skip-waf-probe false Skip active WAF fingerprinting
--force-waf WAF name when --waf-bypass force
--waf-evasion false Auto-throttle (workers=1, delay=3000) on WAF detection
--waf-min-confidence 0.3 Drop fingerprints below this confidence (0.0–1.0). The default 0.3 suppresses weak matches like Server: Google Frontend (0.15). Set lower to keep weak signals; 1.0 keeps only fingerprints with full confidence.

dalfox server

Start the REST API server.

dalfox server [FLAGS]
Flag Short Default Description
--port -p 6664 Listen port
--host -H 127.0.0.1 Bind address
--api-key Required X-API-KEY header value (or DALFOX_API_KEY)
--log-file Plain-text log file
--allowed-origins CORS origins (comma-separated, supports * and regex:)
--jsonp false Wrap responses in JSONP
--callback-param-name callback JSONP callback param
--cors-allow-methods GET,POST,OPTIONS,PUT,PATCH,DELETE CORS methods
--cors-allow-headers Content-Type,X-API-KEY,Authorization CORS headers

See REST API Server for endpoints.


dalfox payload

List or fetch payload collections.

dalfox payload <SELECTOR>

Selectors:

Selector What it prints
event-handlers DOM event handler attribute names
useful-tags Useful HTML tags
uri-scheme javascript:/data: URL payloads
portswigger Remote: PortSwigger XSS cheatsheet
payloadbox Remote: PayloadBox XSS list

dalfox mcp

Run the MCP stdio server.

dalfox mcp

No additional flags. See MCP Server for tool definitions.


See also

ESC