XUT_ / COURSES / PENETRATION TESTER

Operator Injection - Logging in as Other Users

Iniciar Sesión como Otros Usuarios

Hemos conseguido bypassear la pantalla de login de la aplicación, pero con la técnica anterior, sólo podemos loguearnos como el primer usuario que sea devuelto por la base de datos. Haciendo uso del operador $nin, vamos a modificar nuestro payload para que podamos controlar qué usuario queremos obtener.

Primero, el operador $nin nos permite crear un filtro donde el documento deseado tenga un campo, que no esté en una lista de valores (not in = nin). Por lo que si queremos loguearnos como cualquier usuario excepto el admin, podemos modificar nuestro payload así:

Operator Injection - Logging in as Other Users

Esto se traduciría a un filtro con la siguiente estructura:

['username'=>['$nin'=>['admin']], 'password'=>['$ne'=>'aweasdf']]

Lo que le dice a la base de datos que devuelva cualquier usuario para el que el username no sea admin y la contraseña no sea aweasdf. Como resultado se nos da acceso a otra cuanta.

Podemos seguir expandiendo la lista de valores a ignorar ajustando el payload.

Operator Injection - Logging in as Other Users

Esto resultaría en el siguiente filtro:

['username'=>['$nin'=>['admin', 'jude']], 'password'=>['$ne'=>'aweasdf']]

Esto puede ser repetido cuantas veces necesites hasta ganar acceso a todas las cuentas disponibles.