XUT_ / COURSES / PENETRATION TESTER

Operator Injection - Extracting Users Passwords

Extraer Contraseñas de Usuarios

Ahora tenemos acceso a todas las cuentas en la aplicación. Sin embargo, es importante intentar extraer la contraseña usada ya que puede haber sido reutilizada. Para conseguirlo, abusaremos el operador $regex para preguntar una serie de preguntas al servidor que nos permitan recuperar las contraseñas vía un proceso que se asemeja jugar al ahorcado.

Primero, tomaremos uno de los usuarios descubiertos antes y trataremos de adivinar la longitud de la contraseña. Usaremos el siguiente payload para hacerlo:

Operator Injection - Extracting Users Passwords

Date cuenta de que estamos preguntándole a la base de datos si hay un usuario con el nombre admin y una contraseña que coincida con la regex ^.{7}$. Esto representa una string de 7 caracteres. Como responde con error sabemos que la longitud no es 7. Después de probar un poco encontramos la longitud.

Operator Injection - Extracting Users Passwords

Sabemos que la longitud es 5. Ahora toca averiguar el contenido real, para lo cual modificaremos el payload de la siguiente manera:

Operator Injection - Extracting Users Passwords

Ahora estamos trabajando con una expresión regular de 5 caracteres (una c más 4 puntos), coincidiendo con la longitud descubierta y preguntando si coincide con ^c....$, lo que significa que empieza por c. Como la respuesta es invalid login, sabemos que no empieza por c. Es por esto que probamos otra.

Operator Injection - Extracting Users Passwords

Esto confirma que la primera letra de la contraseña es a. Repetiremos el proceso para el resto de letras hasta dar con la contraseña.