Finding and exploiting an unused API endpoint

Link: https://portswigger.net/web-security/api-testing/lab-exploiting-unused-api-endpoint

Description:

To solve the lab, exploit a hidden API endpoint to buy a Lightweight l33t Leather Jacket. You can log in to your own account using the following credentials: wiener:peter.

Preparation:

  • Install Content Type Converter extension in Burp Suite

Proof of concept:

  1. Lakukan analisa pada web target menggunakan user testing

  2. Dari hasil analisa, mengakses halaman detail produk maka sistem akan melakukan GET request ke API /api/products/<<id_product>>/price

  3. API tersebut menarik untuk dianalisa. Ubah method request dari GET menjadi OPTIONS agar nantinya mendapatkan informasi mengenai request method mana saja yang dapat digunakan pada endpoint tersebut. Dari hasil tersebut, didapati informasi bahwa terdapat method GET dan PATCH yang dapat digunakan untuk endpoint tersebut

    GET = Mengambil data

    PATCH = Untuk update data

  4. Ubah request method menjadi PATCH dan gunakan extension yang telah diinstal untuk melakukan Convert to JSON

  5. Setelah itu, seperti yang dapat dilihat pada method GET terdapat data parameter price, pada request body inputkan parameter price kemudian inputkan nilai parameter tersebut menjadi “$0”

  6. Dapat dilihat ketika nilai price tersebut diinputkan string menampilkan pesan kesalahan yang memberi tahu bahwa parameter price harus diisi dengan bilangan integer. Maka sekarang inputkan nilai pada parameter price tersebu dengan integer 0 untuk mengubah nilai harga produk tersebut

  7. Dan produk pun berhasil berubah menjadi $0 dan lakukan pembelian barang tersebut untuk menyelesaikan tangtangan lab ini

Thanks, Stay Ethical & Happy Hacking! 🍻

Last updated