XSS in Google: Valid, Yet Unworthy?
XSS in Google: Valid, Yet Unworthy? - Berawal dari iseng-iseng BU nyari bug di beberapa layanan Google, saya menemukan salah satu domain yang keliatannya udah gak keurus. Penasaran, saya mencoba inject payload XSS standar ke form inputnya. Ternyata berhasil! Muncul alert yang menunjukkan kalau script saya dieksekusi. Dalam hati saya udah girang, “Wah, bisa jadi duid gede nih.”
Setelah dapet bukti valid, saya langsung melaporkan temuan ini ke Google lewat program bug bounty mereka di bughunters.google.com. Setelah beberapa waktu, saya mendapat balasan “🎉 Nice catch!”
Setelah beberapa hari (lagi) diskusi, mereka memutuskan, intinya, “Terima kasih atas laporannya, tapi domain ini sebenernya udah gak aktif dan harusnya udah dimatikan. Jadi, temuan lu valid, tapi sayangnya gak memenuhi syarat untuk dapet bounty. Sebagai apresiasi, kami kirim swag buat lu.”
Berikut write-up—tapi lebih mirip tulisan ngeluh—singkat tentang XSS yang saya temukan di salah satu aset Google tersebut.
Target Discovery
Saya mencari list domain yang masuk dalam scope dari program milik Google dan menemukan halaman Google and Alphabet Vulnerability Reward Program (VRP) Rules. Pada tabel “Reward amounts for security vulnerabilities” terdapat link menuju Github File milik Google berisi list External Domains Acquisitions.
curl https://raw.githubusercontent.com/google/bughunters/refs/heads/main/domain-tiers/external_domains_acquisitions.asciipb -s | grep -oP '(?<=fqdn: ")[^"]+'
Untuk mempersingkat, command tersebut bisa kita kombinasikan dengan httpx.
curl https://raw.githubusercontent.com/google/bughunters/refs/heads/main/domain-tiers/external_domains_acquisitions.asciipb -s | grep -oP '(?<=fqdn: ")[^"]+' | httpx -sc -td -silent
Command tersebut akan melakukan:
-sc
Menampilkan HTTP status code dari setiap request-td
Menampilkan teknologi yang digunakan pada halaman tersebut-silent
Menyembunyikan output verbose (hanya menampilkan hasil penting saja)
Dari banyaknya domain yang tersedia, saya memilih span.sproute.net
.
Ngehek Google
Singkat cerita, dan karena screenshotnya udah ilang juga, saya menemukan parameter email
yang hanya membutuhkan payload biasa untuk menjalankan XSS.
XSS adalah blablabla, saya melaporkan ini ke Google. 2 hari kemudian, email otomatis Google memberitahukan bahwa laporan saya dalam status Triaged. 4 hari kemudian, saya mendapatkan email “🎉 Nice catch!”
Asyiique gajian~
Di-prank Google?
Beberapa hari setelah “Nice Catch”, Google memberitahu bahwa Google VRP panel memutuskan bahwa tidak ada security impact pada laporan saya sehingga tidak memenuhi syarat untuk mendapat hadiah.
Saya membalas dengan beberapa hal yang saya yakini, yaitu; saya mengikuti peraturan domain yang masuk dalam scope program Google, pada Reward Table juga terdapat keterangan bahwa domain yang saya temukan memenuhi syarat untuk hadiah.
Google menjelaskan alasan kenapa laporan saya tidak memenuhi syarat, yaitu karena “The span.sproute.net service was shutdown but the DNS entry was not removed so it points to a random website hosted on AWS which isn’t owned by Google.” Lalu, Google menawarkan untuk memberi hadiah berupa swag.
Saya ngeyel. Karena menurut saya, saya melakukan hal yang sudah sesuai dengan aturan dan scope program mereka. Kalaupun memang ternyata servis dari domain tersebut sudah tidak aktif, maka harusnya Google men-takeout domain tersebut dari scope mereka, kan?
Ngeyel lagi.
Akhirnya karena lama-lama cape juga, yaudah lah ya, tapi ngambek dikit.
Lumayan lah ya dapet merchandise dari Google.
Penutup
Temuan ini berawal karena BU, diperdebatkan setelah kepala agak dingin karena seenggaknya punya profil di Google Bug Hunters, ditulis saat kepala sudah kelamaan dingin. Sampai jumpa pada tulisan selanjutnya.
Timeline
- Nov 23, 2024 — Report submitted.
- Nov 25, 2024 — Triaged
- Nov 29, 2024 — 🎉 Nice catch!
- Nov 30, 2024 - Dec 10, 2024 — Ngeyel
- Dec 11, 2024 — Pasrah
- Jan 4, 2025 — Fixed