DAST that exploits and fixes,not just scans.
A scanner sends payloads and pattern-matches the response.
Strix agents chain the exploit, save the proof, and open the fix PR.
What is DAST?
Why classic DAST stalls
The scanner runs fine. The output is the problem.
Pattern matches, not proof
A response that looks like an error becomes a finding. Someone still has to reproduce it by hand before it is real.
Blind to business logic
Payload lists cannot see broken authorization, race conditions, or multi-step flows. Those are the bugs that get exploited.
Triage eats the savings
Hundreds of unranked issues per scan means engineers spend the time the scanner was supposed to save.
How Strix runs DAST
Black-box testing by agents that behave like a pentester, not a crawler.
Agents that reason
Each response shapes the next request. Agents map the app, form hypotheses, and go after the weaknesses that matter.
Exploit-validated findings
Every reported issue ships with the exact request and response that proved it, so triage starts at confirmed.
Authenticated and API-aware
Test behind login with real sessions and roles. Cover REST and GraphQL APIs, not only the pages a crawler can reach.
The fix, not a PDF
Findings arrive as merge-ready pull requests when a repository is connected, and get retested after the merge.
Runs in CI/CD
Attack every deploy and pull request from GitHub Actions, or schedule continuous coverage on production.
Open source you can run yourself
The engine is open source with a hosted option when you want scans without operating anything.
DAST scanner vs Strix
Both test the running app from the outside. Only one proves what it reports.
Strix
Classic DAST scanner
Strix
Classic DAST scanner
Strix
Classic DAST scanner
Strix
Classic DAST scanner
Strix
Classic DAST scanner
Strix
Classic DAST scanner
Strix
Classic DAST scanner
Strix
Classic DAST scanner
Strix
Classic DAST scanner
Strix
Classic DAST scanner
From issue to fix in seconds
Find critical issues, auto-validate, and auto-fix with merge-ready PRs.
SSRF via URL Parameter in /api/proxy
TL;DR
The /api/proxy endpoint accepts a user-supplied URL without validation. An attacker can access internal services, read cloud metadata, and exfiltrate credentials.
Impact
Access to cloud metadata at 169.254.169.254, potential credential theft, and internal network scanning.
Location
Severity
CVSS
8.6Fix Effort
LowDiscovered
2h agoDiscover & Validate
Pentests your entire attack surface continuously. Reproduces each finding, confirms exploitability with proof, and prioritizes by real impact.
How do I fix it?
Validate and restrict the target URL using an allowlist of permitted hostnames. Reject private/internal IP ranges and enforce HTTPS-only.
| 23 | 23 | const targetUrl = req.query.url; |
| 24 | const resp = await fetch(targetUrl); | |
| 24 | const parsed = new URL(targetUrl); | |
| 25 | if (!ALLOWED_HOSTS.has(parsed.hostname)) { | |
| 26 | throw new ForbiddenError("blocked"); | |
| 27 | } | |
| 28 | const resp = await fetch(parsed.href); | |
| 25 | 29 | return res.json(await resp.json()); |
Auto-Fix
Generates a fix, retests to confirm the vulnerability is gone, and delivers a merge-ready PR. Review, merge, done.
Frequently asked questions
Common questions about dynamic application security testing.
Keep exploring
Solutions
Start testing in minutes
DAST that proves every finding and ships the fix. Open source, free to start.


