Lab: High-level logic vulnerability (4) | Apprentice

Dinnuhoni Trahutomo
4 min readJun 14, 2024

--

Business logic vulnerabilities

Executive Summary:
Mengeksploitasi celah logika bisnis dalam alur pembelian sebuah aplikasi web, sehingga memungkinkan pengguna untuk membeli barang dengan harga yang tidak sesuai dengan yang terdaftar di aplikasi. Dalam kasus ini, harus menemukan dan memanfaatkan kelemahan validasi input yang memungkinkan kita mengubah harga sebuah item agar bisa membelinya dengan harga yang lebih rendah dari yang seharusnya. Tujuan spesifiknya adalah membeli barang “Lightweight “l33t” Leather Jacket” dengan menggunakan kredit toko yang terbatas melalui eksploitasi kerentanan logika bisnis tersebut.

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. Lihat ke bagian kanan atas, tekan “My account” dan masukkan Username serta Password yang telah diberikan di deskripsi Lab. Kemudian kembali ke Home atau beranda.

Pilih barang “Mood Enhancer” dengan menekan “View details”.

Kemudian tekan “Add to cart”.

Lihat di pojok kanan atas, terdapat logo keranjang atau cart, lalu tekan logo tersebut.

Ke BurpSuite, kemudian ke bagian Proxy, lalu ke HTTP history, cari Method dengan URL /cart”. Pada gambar Method dan URL tersebut berada di nomor ke 1056.

Apabila telah berhasil menemukan Method dan URL yang diinginkan, klik kanan dan pilih “Send to Repeater”.

Lalu, ke bagian Repeater, terdapat kuantitas dari produk yang telah dimasukkan ke dalam keranjang pada baris ke-23. Saya memberikan kuantitas sebesar -10, lalu menekan Send.

Dapat dilihat terdapat perubahan pada Total.

Kemudian, kembali ke Home atau Beranda.

Pilih, barang “Lightweight “l33t” Leather Jacket” dengan menekan “View details”.

Tambahkan barang “Lightweight “l33t” Leather Jacket” ke dalam Cart atau Keranjang.

Ke menu Cart atau Keranjang lagi.

Dapat dilihat bahwa jumlah Credit yang dimiliki hanya sebesar $100.00, menandakan belum bisa membeli barang “Lightweight “l33t” Leather Jacket”.

Ke BurpSuite dan ke bagian Repeater sebelumnya untuk mengubah kuantitas barang. Kemudian ubah kuantitas barang di baris ke-23, lalu tekan Send. Lakukan beberapa kali, hingga barang “Lightweight “l33t” Leather Jacket” dapat dipesan.

Dapat dilihat bahwa harga barang kurang dari jumlah Credit yang dimiliki. Kemudian tekan “Place order”.

Dengan cara tersebut, kita dapat membeli barang yang harganya melebihi Credit yang dimiliki saat ini, dan Lab pun berhasil diselesaikan.

Kesimpulan:
Aplikasi memiliki kelemahan dalam validasi input pengguna, khususnya pada jumlah item dalam keranjang belanja. Dengan memanfaatkan kelemahan ini, pengguna dapat memasukkan nilai negatif untuk mengurangi total harga barang dalam keranjang. Ini menunjukkan bahwa aplikasi tidak memvalidasi input di sisi server secara memadai, yang memungkinkan manipulasi data dari sisi klien. Untuk mencegah jenis serangan ini, aplikasi harus memastikan validasi yang ketat di sisi server untuk semua input pengguna, terutama untuk parameter yang mempengaruhi transaksi dan harga.

Oleh: Dinnuhoni Trahutomo
(2209116006)

Terima Kasih!

--

--