Lab: Excessive trust in client-side controls (3) | Apprentice

Dinnuhoni Trahutomo
4 min readJun 13, 2024

--

Business logic vulnerabilities

Executive Summary:
Mengeksploitasi kerentanan logika bisnis dalam sebuah aplikasi web yang terlalu mempercayai kontrol sisi klien. Dalam lab ini, pengguna diinstruksikan untuk memanfaatkan celah dalam alur kerja pembelian untuk membeli barang dengan harga yang tidak sesuai atau lebih rendah dari yang tercantum di situs web. Tujuan akhirnya adalah untuk membeli jaket kulit “Lightweight Le Leather Jacket” dengan harga yang lebih rendah dari harga yang tertera, yaitu $1,337, dengan menggunakan kredit akun yang hanya sebesar $100.

Key Findings:

Full Pen Test Results:
Tekan “ACCESS THE LAB”, kemudian akan terpindah ke tab yang baru.

Saat menekan “ACCESS THE LAB”, kita akan diarahkan ke halaman beranda yang telah disediakan oleh PortSwigger.

Kemudian, tekan “My account”, untuk melanjutkan tahapan.

Lalu, ketik “wiener” sebagai Username dan “peter” sebagai Password.

Apabila telah berhasil menginput Username dan Password, maka halaman login akan tampil sebagai berikut.

Kemudian, kembali lagi ke Beranda atau Home. Dapat dilihat bahwa jumlah dana di credit sebesar $100.00, namun sesuai dengan petunjuk, barang yang ingin dibeli harganya sebesar $1337.00. Untuk mencapai tujuan, maka perlu mengurangi harga barang menjadi $100 atau kurang denganmengidentifikasi dan mengeksploitasi kerentanan di dalam aplikasi.

Tekan “View details” pada produk.

Scroll ke bawah lalu kembali ke Burp Suite untuk menyalakan Intercepet di bagian Proxy.

Kemudian tekan “Add to cart”.

Saat menekan tombol “Add to cart”, maka akan terlihat di bagian Intercept.

Langkah berikunya, klik kanan kemudian pilih “Send to Repeater”, lalu matikan Intercept. Pada baris ke-23, terlihat bahwa harga barang “Lightweight “l33t” Leather Jacket”.

Sesuai dengan petunjuk, kita diharuskan untuk membeli barang “Lightweight “l33t” Leather Jacket” dengan jumlah credit terbatas yang kita miliki. Maka tahap berikutnya adalah mengubah harga barang “Lightweight “l33t” Leather Jacket” dengan harga yang lebih terjangkau. Harga terbaru dari barang “Lightweight “l33t” Leather Jacket” adalah $0.01.

Setelah mengubah harga barang “Lightweight “l33t” Leather Jacket”, tekan “Send”, kemudian reload halaman Cart. Kemudian, tekan “Place order”.

Barang “Lightweight “l33t” Leather Jacket” berhasil dibeli dengan harga sesuai dengan keinginan kita, dan Lab pun selesai.

Kesimpulan:
Harga barang bisa diganti dalam kasus ini karena aplikasi hanya melakukan validasi di sisi klien, bukan di sisi server. Akibatnya, penyerang dapat menggunakan alat seperti Burp Suite untuk memanipulasi parameter harga sebelum dikirim ke server, yang kemudian menerima harga yang telah dimanipulasi tersebut tanpa pemeriksaan ulang. Kelemahan ini terjadi karena tidak adanya validasi sisi server untuk memastikan harga barang sesuai dengan yang sebenarnya. Untuk mencegah hal ini, aplikasi harus melakukan validasi ketat di sisi server, terutama untuk parameter sensitif seperti harga barang, dan tidak bergantung hanya pada validasi di sisi klien.

Oleh: Dinnuhoni Trahutomo
(2209116006)

Terima Kasih!

--

--