loading
loading
Vulnerabilities
Subdomain takeover checks driven by can-i-take-over-xyz response fingerprints.
overview
subzy reads a subdomain list and tests each host for a takeover condition. It requests the host, reads the response, and matches it against the fingerprint set from the can-i-take-over-xyz project. When a subdomain points at a deprovisioned cloud service that still answers with a claimable error page, subzy flags it as vulnerable.
The check is response-driven, so it avoids many false positives that come from CNAME inspection alone. Scan a single host with -target, a comma-separated set, or a file via -targets. Tune -concurrency, -timeout, and -https to match the scope. Set -hide_fails to keep output on hosts worth acting on.
Place it after subdomain enumeration: discovery produces candidate names, subzy confirms which resolve to claimable services, and findings land as FILE and FOLDER output. Pair with tko-subs when you also need optional claim actions.
source github.com/LukaSikic/subzy
use cases
Feed a full subdomain list into subzy so every host is tested against the live fingerprint set, surfacing only the names that point at claimable, dangling services.
Catch subdomains that still CNAME to a deleted S3 bucket, GitHub Pages site, or Heroku app, the exact conditions an attacker uses to hijack a domain.
Set -hide_fails to drop non-vulnerable hosts and raise -concurrency so a wide scope finishes quickly with output that only lists actionable findings.
Wire discovery plus subzy into a scheduled Trickest workflow so newly created subdomains are tested for takeover as they appear, without a manual pass.
reference
| Name | Type | Flag | Description |
|---|---|---|---|
| target | STRING | -target | Single or multiple subdomains separated by comma. |
| targets | FILE | -targets | File of subdomains to scan, the usual pipeline input. |
| concurrency | STRING | -concurrency | Number of concurrent checks (default 10). |
| timeout | STRING | -timeout | Request timeout in seconds (default 10). |
| hide-fails | BOOLEAN | -hide_fails | Do not display non-vulnerable results. |
| force-https | BOOLEAN | -https | Force HTTPS when the target has no protocol defined. |
| dont-verify-ssl | BOOLEAN | -verify_ssl | Skip sites with insecure SSL instead of returning an HTTP error. |
Showing key inputs. subzy exposes 7 inputs in total.
example
# scan a subdomain list, hide non-vulnerable hosts, raise concurrencysubzy -targets subdomains.txt -hide_fails -concurrency 50 -timeout 15[ VULNERABLE - GitHub Pages ] https://assets.example.com[ VULNERABLE - Amazon S3 ] https://cdn.example.com[ NOT VULNERABLE ] https://api.example.com[ NOT VULNERABLE ] https://app.example.com[ NOT VULNERABLE ] https://staging.example.com[ HTTP ERROR ] https://legacy.example.comResults vulnerable: 2 not vulnerable: 3 errors: 1guidance
Reach for subzy when you have a subdomain list and need to know which hosts are takeover candidates. It matches can-i-take-over-xyz fingerprints on live HTTP responses, so it confirms claimable pages rather than dangling CNAMEs alone. Pair with subfinder upstream; use tko-subs when you also want optional claim/takeover actions.
Also detects dangling DNS records and can claim some of them. Uses a providers CSV rather than the can-i-take-over-xyz fingerprint set.
Finds the subdomains first. Run it before subzy, not instead of it.
Has takeover templates among many other checks. subzy is purpose-built for this one fingerprint job.
faq
related
Automates OS command injection detection and exploitation.
Subdomain takeover scanner with cloud-zone intake.
Locate public CVE proof-of-concept repositories on GitHub.
Decode, forge, crack, and tamper JWTs for auth checks.
Triage reflected special characters on parameterized URLs.
Detect and exploit SQL injection on authorized web targets.
A domain feeds subfinder, which enumerates subdomains and passes them to subzy, which flags the takeover candidates as a queryable output.
Facts on this page come from the live Trickest tool library.