Exploiting NoSQL operator injection to bypass authentication

Link: https://portswigger.net/web-security/nosql-injection/lab-nosql-injection-bypass-authentication

Description:

The login functionality for this lab is powered by a MongoDB NoSQL database. It is vulnerable to NoSQL injection using MongoDB operators.

To solve the lab, log into the application as the administrator user.

You can log in to your own account using the following credentials: wiener:peter.

Preparation:

  • Install extension browser Cookie-Editor

Proof of concept:

  1. Analisa pada web taget

  2. Ketika diinjeksikan paylaod basic NoSQL bypass authentication tampil pesan kesalahan yang memungkinkan bahwa form login tersebut rentan terhadap NoSQL Injection

  3. Ketika menginjeksikan payload bypass authentication menggunakan {”$ne”: null} pada parameter password dan menggunakan wiener untuk data username nya, maka berhasil login ke user wiener tanpa menggunakan password asli

  4. Namun ketika menggunakan teknik yang sama dengan username administrator, hal tersebut tidak berhasil dengan error Invalid username or password. Dapat disimpulkan bahwa akun administrator tersebut tidak menggunakan username administrator

  5. Untuk tetap dapat melakukan bypass authentication ke akun administrator dengan keadaan tidak mengetahui username lengkap dari username administrator dapat menggunakan payload injection {”$regex”:”admin.*”} pada parameter username dengan payload pada parameter password sama dengan langkah sebelumnya

  6. Seperti yang dapat dilihat pada gambar diatas menunjukan bahwa berhasil login ditandai didapatinya session akun administrator. Copy session tersebut, buka browser dan paste cookie session tersebut ke Cookie-Editor agar browser tersebut menggunakan session admin sehingga tangtangan lab ini berhasil terselesaikan

Thanks, Stay Ethical & Happy Hacking! 🍻

Last updated