Skip to content
Back to skills

Web Subdomain Takeover

ASecurity

Claim a dangling DNS record pointing to a deprovisioned service (subdomain takeover). Load after subdomain enum, on CNAMEs to cloud services, "NoSuchBucket"/"404 there isn't a GitHub Pages site here", or dangling A/CNAME. Signals: CNAME → S3/GitHub/Heroku/Azure/Fastly with a fingerprint error page.

  • 20 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 22, 2026
ai-agentsrustgoazuregitsecurity

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add NoorQureshi/SploitAgent --skill web-subdomain-takeover --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Web Subdomain Takeover?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Web Subdomain Takeover
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/noorqureshi-web-subdomain-takeover/badge)](https://www.skillsdirectory.com/skills/noorqureshi-web-subdomain-takeover)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: web-subdomain-takeover
description: >
  Claim a dangling DNS record pointing to a deprovisioned service (subdomain takeover). Load
  after subdomain enum, on CNAMEs to cloud services, "NoSuchBucket"/"404 there isn't a GitHub
  Pages site here", or dangling A/CNAME. Signals: CNAME → S3/GitHub/Heroku/Azure/Fastly with a
  fingerprint error page.
domain: web
type: technique
stability: learning
modes: [bugbounty]
severity: high
owasp: [A05:2021-Security-Misconfiguration]
cwe: [CWE-350]
tools: [subjack, nuclei, dig]
schema_version: 1
---

# Subdomain takeover

## When it applies
A subdomain's DNS still points (CNAME/A) to a third-party service that no longer has the
resource provisioned, so you can register it and serve content on the victim's subdomain.

## Why it works
The org deleted the S3 bucket / GitHub Pages / Heroku app but left the DNS record. The provider
now serves that hostname to whoever claims the resource next — you. You control content on a
trusted subdomain (phishing, cookie theft on the parent domain, OAuth redirect_uri allowlist).

## Method
1. **Find candidates**: from subdomain enum, resolve CNAMEs (`dig CNAME sub.target.com`) and look
   for third-party targets with a "not claimed" fingerprint (`nuclei -t takeovers`, `subjack`).
2. **Confirm the fingerprint**: the provider's specific unclaimed-resource error (e.g. S3
   `NoSuchBucket`, GitHub Pages 404, Heroku "no such app").
3. **Claim it**: register the exact resource name on that provider (bucket/app/pages repo) and
   serve a proof file — do NOT phish; a harmless proof page is the report.
4. **Assess chained impact**: cookie scope on parent domain, OAuth `redirect_uri` allowlist,
   CSP `script-src` including the subdomain, SPF/email.

## Gotchas
- Only some providers are claimable and only with the right fingerprint — a generic 404 isn't takeover.
- Prove with a benign marker page; don't collect data or run phishing.
- Note the chained impact (why it matters) — a bare takeover of an unused subdomain may be low without it.

## Verify success
You serve attacker-controlled content at the victim's subdomain (proof file loads at
`sub.target.com`), captured with the DNS record + your claimed resource.

## References
can-i-take-over-xyz; subjack/nuclei takeover templates; HackerOne takeover reports.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…