martes, diciembre 07, 2021

Recupera tu contraseña... aunque no sea tuya con un correo inexistente

Son ya camino de veinticinco años ya que comencé a trabajar en seguridad informática. Pasa rápido el tiempo. Y aún me acuerdo de que siempre le decía a mis compañeros y alumnos en mis formaciones una frase que tengo grabada a fuego: "Cuando creas que a nadie se le ocurriría hacer eso piensa que siempre hay alguien al que le ha parecido una gran idea". Esa frase la utilizaba para explicar los métodos más absurdos de seguridad que he visto en mi vida. Y créeme si te digo que he visto muchos métodos absurdos.

Figura 1: Recupera tu contraseña... aunque no sea tuya con un correo inexistente

Hoy he reportado un fallo de seguridad en una web que permitía enumerar todos los usuarios de la plataforma utilizando un comodín al viejo estilo de los ataques de despliegue en Blind LDAP Injection - también en Blind SQL Injection -, de esos que contamos en el libro de Hacking Web Technologies 2ª Edición donde le dedico un buen rato a los ataques LDAP y en el libro de Hacking Web Applications: SQL Injection 4ª Edición.

Figura 2: Libro de Hacking Web Technologies en 0xWord de los autores:
Amador Aparicio, Chema Alonso, Pablo González, Enrique Rando y Ricardo Martín.
/
Y después he mirado a ver si ese mismo truco funcionaba en alguna otra página de recuperación de contraseñas que teníamos en algunos de nuestros proyectos, y "dando una vuelta con el hacking con buscadores", me he topado con uno de los métodos más absurdos para robar credenciales en una web.

Un ejemplo absurdo de recuperación de passwords

Permitidme que no os diga cuál es la web, pues se lo he reportado, pero me flipa cómo alguien puede diseñar un sistema de recuperación de passwords como este. Veréis, en la parte de recuperación de contraseña te pide, inicialmente, solo el nombre de usuario y un captcha. Si no existe, como podéis ver a continuación, da un error.

Figura 3: Usuario no existe. ¿Existirá el admin?

Pero si existe el usuario, te muestra todos lo métodos posibles de recuperación de contraseña. Además, muy educadamente se disculpa. Esto ya me llama la atención un montón, pues al final, te está diciendo qué datos tiene de ese usuario, que yo he probado aleatoriamente con algunos de los más comunes, como "admin". Nada rocket science.

Figura 4: Métodos para recuperar la password del admin.
Se puede "Solicitar Recuperar Contraseña"

Como en este caso no hay nada asociado, solo se puede recuperar por e-mail, así que nada. A probar a ver si ahí se encuentra el leak de enumeración que estoy probando. Pero... mi sorpresa es grande cuando veo que solo me pide el correo electrónico, y no el usuario. Eso es porque el usuario lo he pasado en la pantalla de la Figura 3, así que entiendo que lo que me está pidiendo es el e-mail asociado.

Figura 5: Ponemos un 10 minutes e-mail a ver qué pasas

Pero no, lo que está pidiendo es una dirección de e-mail con un formato de e-mail, y puedes poner cualquiera, que como podéis ver, te va a mandar un código de verificación a esa dirección de e-mail. Así que nada. Un correo electrónico de 10 minutos y a probar. 

Figura 6: Correo para recuperar la contraseña. 
¿Qué vendrá en ese mensaje?

Pues sí, envía el mensaje con el código para recuperar la cuenta. Y ya no hace falta probar nada más. El bug de enumeración es menor comparado con este sistema absurdo de recuperación de contraseñas que no ha pasado una buena auditoría de seguridad.

Figura 7: El código para recuperar la contraseña en el e-mail

Así que, si estás pensando en que a ningún desarrollador se le ocurriría una idea absurda para gestionar la seguridad de los datos de tu empresa, piénsatelo dos veces y haz una buena auditoría de seguridad que te puedes encontrar cualquier cosa.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


4 comentarios:

Yas dijo...

I'm fliping...

JL dijo...

Muy bueno 👌

fran dijo...

igual no le han pagado los últimos trabajos y ....

I.o dijo...

Super! Echare un vistazo por la red

Entrada destacada

Tokenomics 101: Una explicación con gráficos

He tenido que explicar muchas veces por qué alguien va a pagar algo por un Token . Es verdad que cuando se habla de Tokens , es muy diferent...

Entradas populares