Apa Itu Subdomain Takeover?
Subdomain takeover terjadi ketika DNS record subdomain masih aktif mengarah ke layanan eksternal (GitHub Pages, Heroku, S3, dll) yang sudah dihapus — memungkinkan siapa saja mengklaim layanan tersebut.
Cara Kerja
- Perusahaan buat
blog.example.com → CNAME ke example.github.io
- GitHub Pages dihapus, tapi DNS record tidak ikut dihapus
- Attacker buat GitHub Pages dengan nama yang sama
blog.example.com sekarang mengarah ke halaman attacker!
Layanan yang Sering Vulnerable
| Layanan | Ciri Vulnerable |
| GitHub Pages | "There isn't a GitHub Pages site here" |
| Heroku | "No such app" |
| AWS S3 | "NoSuchBucket" |
| Netlify | "Not found - Request ID" |
| Fastly | "Fastly error: unknown domain" |
Deteksi & Verifikasi
# Cek CNAME subdomain
dig blog.example.com CNAME
# Jika mengarah ke github.io, buka URL-nya
# Jika muncul "404 - not found" dari GitHub = vulnerable!
# Scan otomatis dengan nuclei
nuclei -l subdomains.txt -t takeovers/ -o results.txt
Proof of Concept
# Untuk GitHub Pages takeover:
1. Buat repo: username.github.io atau repo biasa dengan Pages
2. Tambahkan CNAME file berisi: blog.example.com
3. Aktifkan GitHub Pages
4. Akses blog.example.com → tampil halaman milikmu!
# Ini cukup sebagai PoC — JANGAN taruh konten berbahaya!
// CEK PEMAHAMAN
Apa langkah pertama untuk memverifikasi subdomain takeover di GitHub Pages?
AScan port subdomain tersebut
BCek CNAME record, pastikan mengarah ke github.io, lalu akses untuk melihat apakah resource sudah tidak ada
CLangsung buat GitHub Pages dengan nama domain tersebut
DCoba SQL injection di subdomain tersebut