Rabu, 14 Agustus 2019

Halaman 404 yang berujung pada URL takeover dan stored XSS pada k******.com (Part 1)

Halo,

Sebenarnya 'URL takeover' hanyalah judul yang saya buat-buat sendiri, karena saya juga belum tahu namanya apa. Mekanismenya mirip dengan subdomain takeover, hanya saja yang saya ambil alih tidak sepenuhnya subdomain, namun URL yang terdapat pada subdomain, lebih lengkapnya sebagai berikut:

Masih ingat report saya tentang clickjacking sebulan yang lalu? (Clickjacking web eccomerce indonesia) laporan tersebut tidak mendapatkan balasan. Namun ketika saya melihat kembali halaman penjelasan seputar bug bounty, clickjacking dimasukkan sebagai Out of Scope, dan sepertinya itu karena laporan saya :v wkwk.

Entah kenapa hari ini terlintas di pikiran ingin mengecek kembali halaman tersebut. Teori saya, jika vulnerability dengan mitigasi ringan saja diabaikan, besar kemungkinan halaman tersebut tidak begitu dimaintain dengan baik bukan?

Bermodalkan teori tersebut, saya bereksplorasi kembali. Setelah melakukan surfing ke beberapa halaman dan mengecek console browser, saya menemukan sebuah hal menarik yaitu halaman tersebut berusaha melakukan load resource ke sebuah URL, namun gagal dengan kode 404 alias resource not found.

Saya kemudian menyalin URL resource yang tidak ditemukan tersebut kemudian membukanya pada tab baru, sebuah halaman error AWS cloud service "No Bucket Found" muncul beserta keterangan nama bucketnya.

Setelah membaca sekilas tentang subdomain takeover menggunakan AWS, saya berkesimpulan bahwa URL ini bisa kita takeover.

Namun ketika saya membuka kembali halaman bug bounty, saya lihat subdomain yang menggunakan URL tersebut tidak dimasukkan kedalam scope, semangat saya langsung turun.

Namun kemudian saya teringat ucapan sensei saya, "Dilaporkan saja, urusan valid atau tidak biar mereka yang menentukan.", saya jadi bersemangat lagi untuk membuat PoC dan melaporkan bug ini.

Saya kemudian menghapus path-path dari URL tersebut mulai dari ujung, dan menemukan bahwa permukaan bucket terletak pada subdomain.com/image/ (inilah kenapa saya tidak menyebutnya sebagai
subdomain takeover).


Saya kemudian meminjam akun AWS milik kawan saya (Cheers to mas Ijul :v) karena kartu kredit saya sedang kosong, sehingga tidak bisa membuat akun AWS sendiri.

Ketika membuat bucket, saya terpentok pada pemilihan lokasi server, karena ketika saya melakukan Digging cname record, Nmap dsb. saya tidak bisa mendapatkan perkiraan lokasi bucket yang digunakan URL tersebut, karena memang bucket ini terletak di sebuah URL, bukan subdomain.

Saya kemudian memutuskan untuk memilih lokasi yang sekiranya paling mungkin digunakan. Karena situs tersebut merupakan marketplace asal Indonesia, saya memilih Asia Pacific.

Dan benar saja, ketika saya mengakses kembali URL tersebut, error berganti menjadi "Access Denied", karena memang bucket yang saya buat masih private. Saya langsung yakin URL tersebut berhasil saya takeover, saatnya membuat PoC!



Halaman 404 yang berujung pada URL takeover dan stored XSS pada k******.com (Part 1)
4/ 5
Oleh