Portswigger - Finding and exploiting an unused API endpoint

Tampilan awal dari Lab Finding and Exploiting an unused API endpoint
Sumber: Dokumentasi Penulis

Analis Purwakarta - Analis Admin. Pada Lab Portswigger ini, penulis akan mendemonstrasikan cara menyelesaikan tugas dari seris API Testing yang disediakan oleh Portswigger. Lab yang berjudul Finding and Exploiting an unused API endpoint, memiliki tujuan untuk memanipulasi harga dari sebuah brand baju yang disediakan didalam sebuah API.

Sebelum memasuki lab ini, penulis diberi sebuah materi bagaimana berinteraksi dengan API endpoints ketika melakukan testing pada sebuah API. Cara bagaimana penulis dapat berinteraksi dengan API endpoints tersebut diantaranya adalah:

  1. Mengidentifkasi HTTP Method apa saja yang digunakan oleh sebuah API, dan;
  2. Mengidentifikasi Content Type apa saja yang digunakan oleh sebuah API.
Langkah awal dari pengujian ini adalah penulis akan masuk menggunakan akun yang disediakan oleh Portswigger, setelah masuk menggunakan akun kembali ke halaman awal website. Pada tampilan halaman awal website, pilih produk "Lightweight "l33t" Leather Jacket", perhatikan harga jaket tersebut berjumlah $1337.00.

Penulis akan mencoba untuk mengintersep HTTP Request dengan menggunakan proxy yang telah disiapkan. Terdapat sebuah HTTP Request yang memiliki header GET Method harga dari produk baju tersebut dengan path API berupa /api/products/1/price. HTTP Response dari Request tersebut berisi setidaknya dua variabel bertipe JSON yakni Price dan Message, penulis disini akan memanipulasi harga yang didapatkan dari Price variabel. Sebagaimana diketahui pada materi sebelumnya, kita dapat memanipulasi sebuah API dengan mengganti HTTP Method, dan menambahkan Content Type apa saja yang didukung, dan digunakan pada web yang akan kita tes.


HTTP Request dan Response yang telah diintersep
Sumber: Dokumentasi Penulis

Penulis merubah HTTP method GET menggunakan method PATCH yang bertujuan untuk merubah nilai dari variabel price. Kemudian penulis menambahkan Content-Type: application/json pada bagian terakhir HTTP Header, dan menambahkan value terbaru untuk variabel price dengan menginput JSON {"price": 0} di HTTP Body.


HTTP Request dan Responnya ketika sudah di manipulasi
Sumber: Dokumentasi penulis

Bila penulis refresh laman produk tersebut, maka harga yang sebelumnya $1337.00 menjadi $0.00. Langkah terakhir dari lab ini adalah kita memasukan kedalam keranjang, dan mengorder jaket tersebut dengan harga $0.00 saja,


Tampilan akhir Lab
Sumber: Dokumentasi Penulis







Komentar

Postingan populer dari blog ini

Depo Lokomotif Stasiun Kereta Api Purwakarta Dari Masa ke Masa

Pesona Curug Suhada di Kecamatan Sukatani Kabupaten Purwakarta

PICO CTF Web Exploitation 2024 WebDecode Challenge