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:
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 parameterpassword
dan menggunakanwiener
untuk data username nya, maka berhasil login ke userwiener
tanpa menggunakan password asliNamun ketika menggunakan teknik yang sama dengan username
administrator
, hal tersebut tidak berhasil dengan errorInvalid username or password
. Dapat disimpulkan bahwa akunadministrator
tersebut tidak menggunakan usernameadministrator
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 parameterusername
dengan payload pada parameterpassword
sama dengan langkah sebelumnyaSeperti 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