Dynamic Application Security Testing (DAST) scanner for web apps and APIs
2.4K
Dynamic Application Security Testing (DAST) scanner for web applications and REST APIs. Detects vulnerabilities like SQL injection, XSS, SSRF, misconfigurations, and known CVEs by actively probing running targets.
docker run --rm xygeni/xy-dast:latest scan -u https://your-app.example.com
Published as a multi-arch manifest list — Docker selects the matching variant automatically:
linux/amd64 — Intel/AMD x86_64 hostslinux/arm64 — Apple Silicon (M1/M2/M3/M4) and other arm64 hosts; runs natively, no Rosetta/QEMU emulationtraditional, spa, openapi, graphql, soap, cms) with --profile, and an intensity (quick, balanced, deep, passive) with --intensity; or auto-detect the tech base with --auto-profile (technology fingerprinting)--vuln-check)--fail-on)The simplest way to try it out — one self-contained docker run:
docker run --rm xygeni/xy-dast scan -u https://target.example.com
For anything beyond a smoke test, install the xy-dast wrapper described below; the rest of the examples use it.
xy-dast wrapper (recommended)The image ships an installer that drops a small xy-dast wrapper plus a sidecar xy-dast-compose.yml on the host, so you can invoke xy-dast like a native command. The wrapper handles env forwarding (XYGENI_TOKEN, XYGENI_URL, XYGENI_DASHBOARD_URL), output volume mounting, and network_mode: host.
Linux / macOS:
docker run --rm -v ~/.local/bin:/mnt/install xygeni/xy-dast install
Windows (PowerShell):
docker run --rm -v C:\Tools:/mnt/install xygeni/xy-dast install --powershell
The wrapper is byte-stable and signed at release time (Authenticode for .ps1); the installer copies it byte-exact to preserve the signature. Requires docker compose v2 (bundled with Docker Engine 20.10+ / Docker Desktop).
To pin the wrapper to a specific image tag or digest, pass --image:
docker run --rm -v ~/.local/bin:/mnt/install xygeni/xy-dast \
install --image xygeni/xy-dast:6.8.0
# Show the full command syntax and every available flag
xy-dast --help
xy-dast scan --help
# Scan a web application
xy-dast scan -u https://target.example.com -o report.json
# Scan a REST API with OpenAPI spec
xy-dast scan -u https://api.example.com \
--profile openapi --openapi https://api.example.com/swagger.json \
-o report.json
# Deep scan of an SPA (deep intensity turns on deep crawl + CVE checking)
xy-dast scan -u https://app.example.com \
--profile spa --intensity deep \
-o report.json
# Production-safe passive scan (no active attack payloads)
xy-dast scan -u https://staging.example.com \
--profile traditional --intensity passive \
-o report.json
# Scan with authentication and a CI quality gate
export API_TOKEN=...
xy-dast scan -u https://target.example.com \
--bearer-token env:API_TOKEN \
--fail-on high \
-o report.json
This image is signed with Sigstore cosign. Verify the signature before installing:
cosign verify \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp 'github\.com/xygeni/xy-dast' \
xygeni/xy-dast:6.8.0
SBOM and SLSA provenance attestations are attached to every release.
| Variable | Description |
|---|---|
XYGENI_TOKEN | Xygeni API token for report upload |
XYGENI_URL | Xygeni API endpoint (default: https://api.xygeni.io) |
| Code | Meaning |
|---|---|
| 0 | Scan completed successfully |
| 1 | General error |
| 4 | Invalid input |
| 128 | Findings exceed --fail-on severity threshold |
Content type
Image
Digest
sha256:9cb01e1d1…
Size
246 Bytes
Last updated
1 day ago
docker pull xygeni/xy-dast:sha256-001f74d8cb7b1e03bec0cbef6f9cb7bb53f3f1435f8c91139aee5dd7cd0b363c.sig