Exploiting NoSQL operator injection to bypass authentication
Link: https://portswigger.net/web-security/nosql-injection/lab-nosql-injection-bypass-authentication
Last updated
Link: https://portswigger.net/web-security/nosql-injection/lab-nosql-injection-bypass-authentication
Last updated
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:
Analisa pada web taget
Ketika diinjeksikan paylaod basic NoSQL bypass authentication tampil pesan kesalahan yang memungkinkan bahwa form login tersebut rentan terhadap NoSQL Injection
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
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
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
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! 🍻