M-Tix Cinema XXI merupakan sebuah aplikasi/web untuk melakukan pemesanan tiket dan makanan untuk menonton film di biskop Cinema XXI di Indonesia.
Suatu hari ketika saya membeli tiket bioskop melalui aplikasi M-Tix Cinema XXI, disitu saya melihat ada yang berbeda di fitur history pembelian. Ya, ada fitur baru di aplikasi tersebut yaitu fitur pemesanan minum dan makanan untuk kita menonton. Jadi, sebelumnya belum ada fitur untuk melakukan pemesanan minum dan makanan melalui aplikasi, kita harus membeli langsung saat di tempat sebelum film di mulai.
Saat mengetahuui ada fitur baru, saya langsung mencoba melakukan pentesting melalui login browser. Ini dia tampilan fiturnya:

Mulai dari halaman itu saya mulai meneliti setiap proses bagaimana eksekusi ordernya dari javascript sourcenya sampai input & output request data setiap endpointnya. Sebelum melakukan tes order, saldo akun saya sisa Rp.95.000

Saya mulai melakukan pentesting hanya menggunakan browser tanpa aplikasi khusus seperti Burpsuite. Pada bagian proses ordernya dengan menginputkan jumlah item yang mau saya beli dengan total pembayaran lebih besar dari nominal saldo saya supaya nantinya proses order gagal karena saldo tidak cukup sehingga saldo tidak terpotong. Opsi ini dilakukan karena tidak adanya fitur intercape seperti burpsuite. Cara ini untuk melihat data dari request data proses order mulai dari data endpoint, header, body/parameter, dan respone datanya.


Setelah datanya saya dapat saya mulai meneliti dan melakukan beberapa modifikasi data. Saat itu saya langsung berfikir dari beberapa kasus pada bagian input angka seperti data quantity sering terjadi missing filter (tidak difilter) sehingga angka dibawah 1 tetap dieksekusi tanpa ada error handling. Saya langsung melakukan tes dengan menginputkan angka -2 pada bagian data quantitynya.



Responenya benar sukses seperti dugaan saya sebelumnya dan setelah itu saya langsung cek saldo saya dan ini hasilnya.

Ya, saldo akun saya bertambah dengan perhitungan Saldo Awal -(-Quantity x Harga Item) = SALDO + JUMLAH PEMBAYARAN = 95.000 + 126.000 = 221.000.

IMPACT: User bebas menambah saldo akun tanpa perlu melakukan Topup melalui metode pembayaran di aplikasi/website M-Tix.
Kesimpulannya impact dari bug ini bisa merugikan pihak Cinema XXI karena user dengan bebas menambah saldo berapapun yang diinginkan.
Timeline:
- 30 Juli 2019 : Pentesting
- 30 Juli 2019 : Saya melaporkan ke pihak Cinema XXI via Email
- — Pihak Cinema XXI NO RESPONE —
- 01 Agustus 2019 : Checking -> bug patched
- — Saldo ditarik — wkwkwkwk