Html File Upload Lead to A.T.O in Indonesian Government Site

1 week ago 4

Hello Hunters 👋, perkenalkan saya adalah seorang Bug Hunter, saya hanya mencari celah atau bug disaat saya mempunyai waktu luang saja, karena saya disibukan dengan kegiatan kuliah 🥱. Ini adalah artikel pertama saya di Medium, jadi jangan berharap yang bagus😅

Account Takeover

Awalan

Seperti yang saya bilang tadi disaat waktu luang saya sebisa mungkin melakukan Bug Hunt dan pada saat ini yang menjadi target saya adalah situs salah satu pemerintah (Anggap saja target.com) alasan saya memilih situs pemerintah yaitu ingin tau saja apa benar tingkat keamanannya sejelek yang dibicarakan karena sekarang kan banyak banget data yang bocor.

Hunt Time 😈

Langsung saja ke-writeupnya. Setelah saya cari tau, di domain utamanya memiliki sedikit fungsi, jadi saya memutuskan untuk mencari di subdomainnya saja dan menemukan situs yang saya pikir menarik karena disana seperti tempat tempat permintaan informasi (entah informasi apah😅), tapi disana jika ingin mengajukan permintaan, sebelumnya harus mendaftar akun terlebih dahulu dengan syarat:

Mengisi Nomor KTP,Alamat Domsili,Nama Lengkap,Nomor Telepon, danEmail

Setelah mendaftar kita diwajibkan untuk memverifikasikan dengan mengklik url di alamat email, tapi sebelum itu kita diarahkan halaman yang dimana nama kita yang kita inputkan ada disana. Langsung saja saya daftar lagi tapi memasukan payload XSS dan Html Injection di nama saya, kemudian keduanya berhasil berjalan, tapi sepertinya itu hanya self XSS jadi saya biarkan.

XSS Work

Setelah memverifikasikan akun, kita diarahkan ke profile kita, disana kita dapat mengedit/mengubah profil kita untuk identitas akun kita (saya sudah mencoba payload XSS, HTMLi, CSSi tapi tidak ada yang berhasil😪), dan ketika saya ingin menguji fungsi upload foto di profile kita, saya menyadari bahwa eksitensi filenya berubah sesuai file signaturenya dan jika eksitensinya .php maka file akan disimpan tanpa eksistensi, saya sudah coba berbagai cara untuk mem-bypassnya, tetapi tetap tidak bisa. Jika file php tidak bisa saya mencoba file html dan ternyata bisa!, begitupun ketika menjalankan javascript disana.

Html Upload

Tapi ketika mengambil cookie entah mengapa hanya ada XSRF Token saja.

XSS

Begitupun ketika mencoba SSRF (via iframe/src=) sepertinya itu merender client side jadi tidak bisa. Walaupun masih memungkinkan untuk berbagai macam attack scenario seperti Open Redirect, dll. Saya tetap menginginkan bug yang fatal dan disitulah saya berpikir Account Takeover via CSRF, akan tetapi masih memiliki masalah yaitu mereka juga menerapkan csrf token yang berbeda di tiap request dan itu tertera di halaman profil kita. Akan tetapi, tentu saja saya tau cara bypassnya 😎

CSRF Token

PoC

Sebelumnya main browser kita dan iframe didalamnya itu tidak bisa berkomunikasi sama sekali, kecuali, Protokolnya sama, Domainnya sama, dan Portnya juga sama. Jadi gini kita ada csrf token di halaman prfile dan kita dapat mengupload file html, jadi saya berfikir untuk mengambil token via iframe dengan javascript, dan it work again 😎.

CSRF Token

langsung saja saya membuat script agar tiap kali membuka file htmlnya ia akan merequest untuk mengganti password yang kita inginkan, singkat cerita itu berhasil 😎.

Saya sudah melaporkan ini kepada instansi terkait karena penyerangan yang berhasil akan dapat mengambil no KTP, nama, alamat, email, dan no. Hp milik korban. Tetapi sampai saat ini belum juga meresponnya.

Read Entire Article