in a field of echoes,
follow the one that runs.
Dalfox hunts XSS.
An open-source scanner for reflected, stored, and DOM-based XSS, written in Rust. It finds the parameters, probes each context, and proves every hit in the parsed HTML and JavaScript before it reports it.
Run it as a command, a REST server, or an MCP tool. One engine underneath, and every finding graded by the evidence behind it.
install
One binary. Nothing else to set up.
brew install dalfox
Prebuilt binaries for macOS, Linux, and Windows are on the releases page. The installation guide covers every channel, including Docker and building from source.
run
One command, a verified finding.
Point Dalfox at a target. It discovers the parameters, probes which characters survive in each context, injects payloads, and checks the hit in the parsed DOM before it reports it.
The [V] means the payload was found executing in the parsed response, not merely echoed back. The detection model explains every grade.
what it does
The whole XSS workflow, in one scanner.
- discover
- Finds parameters in the query, body, path, headers, cookies, forms, and fragments, then mines more from the DOM, a wordlist, and JSON keys.
- probe
- Per-character probes tell Dalfox where each parameter lands and which characters survive, so it only sends payloads that can work there.
- verify
- An HTML parser plus a JavaScript AST separate a reflection that executes from one that only echoes back. Findings carry their evidence.
- evade
- Fingerprints common WAFs and mutates payloads with encoding, case, whitespace, and entity tricks to get past them.
- pipeline
- Reads URLs, files, stdin, raw HTTP requests, HAR, and OpenAPI. Chains after your crawler, proxy, or recon tools in CI.
- report
- Plain, JSON, JSONL, Markdown, TOML, or SARIF for GitHub code scanning. Request and response bodies only when you ask.
modes
Six ways to run it.
Pick the shape that fits your target. Every mode shares the same discovery and verification engine.
dalfox scan https://target.appScan a single URL. Dalfox mines parameters, probes each context, and checks every hit in the parsed response.
dalfox scan urls.txtScan a list of targets from a file, one URL per line, into one report.
cat urls.txt | dalfox scanRead targets from stdin, so Dalfox sits at the end of your crawler or recon pipeline.
dalfox scan https://app/post --sxss --sxss-url https://app/feedInject on one endpoint, then check the page where the stored payload shows up.
dalfox serverRun Dalfox as a long-lived REST API for async scan jobs, integrations, and dashboards.
dalfox mcpExpose Dalfox as MCP tools so agents and IDEs can run scans for you.
community
Built in the open, by hunters everywhere.
Dalfox is shaped by the people who run it. Open an issue, send a pull request, or share payloads with the community.