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:
- Mengidentifkasi HTTP Method apa saja yang digunakan oleh sebuah API, dan;
- 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,
Komentar
Posting Komentar