Entrada

Exploiting NoSQL operator injection to bypass authentication

Laboratorio de Portswigger sobre NoSQLI

Exploiting NoSQL operator injection to bypass authentication

Certificaciones

  • eWPT
  • eWPTXv2
  • OSWE
  • BSCP

Descripción

Este laboratorio utiliza una base de datos NoSQL en MongoDB para gestionar la funcionalidad de inicio de sesión. Es vulnerable a inyección NoSQL mediante operadores de MongoDB. Para resolver el laboratorio, debemos iniciar sesión en la aplicación como el usuario administrador. Podemos iniciar sesión en nuestra propia cuenta utilizando las credenciales wiener:peter


Guía de NoSQLI

Antes de completar este laboratorio es recomendable leerse esta guía de NoSQLI https://justice-reaper.github.io/posts/NoSQLI-Guide/

Resolución

Al acceder a la web vemos esto

Pulsamos sobre My account y nos logueamos con las credenciales wiener:peter

Si capturamos la petición con Burpsuite, vemos que se está enviando un JSON con el nombre de usuario y la contraseña

Modificamos la petición, con el operador de consulta $regex seleccionamos todos los usuarios que empiezan por adm y en el campo contraseña usamos el operador $ne con el valor null, es decir, cuya contraseña tiene un valor distinto de null

Hacemos click derecho y pulsamos Request in browser > In original session

Nos copiamos el enlace y lo pegamos en el navegador. Una vez hecho eso, habremos accedido a la cuenta del usuario administrador efectuando un login bypass

Esta entrada está licenciada bajo CC BY 4.0 por el autor.