¿Puede alguien por favor ayudarme a entender este código y qué vulnerabilidades existen? [cerrado]

-3

¿Qué vulnerabilidades existen ???

    
pregunta Swetha v m 16.05.2018 - 04:29
fuente

2 respuestas

1
  

¿Puede alguien por favor ayudarme a entender este código?

Es una página de "restablecer tu contraseña". Si el correo electrónico existe en la base de datos, dice que no puede restablecer su contraseña (me aventuraría a adivinar que el sistema de restablecimiento de contraseña ha sido abusado recientemente).

Si no existe, dice que no puede restablecer su contraseña (con motivo).

Cualquier vulnerabilidad aún existente estaría relacionada con el hecho de que la página está repitiendo el "correo electrónico" que se envía a la página en sí (no hay comprobación de que es un correo electrónico válido), y que lo mismo se utiliza para una operación de SQL, presumiblemente, dirigida a encontrar si el correo electrónico está en la base de datos o no.

Dependiendo de cómo se realice esta última operación, qué acceso se otorga a la base de datos, si se conoce su esquema y otros factores, es posible que se filtre todo tipo de información de la base de datos. Posiblemente, nuevamente, dependiendo del backend de la base de datos, algunas instrucciones potencialmente dañinas también podrían enviarse a la base de datos y ejecutarse.

En general, tal esquema de restablecimiento de contraseña debería ser algo como:

check the request is valid

check the email is valid. If not, say "The email you sent is not valid".

check how many emails match in the database.

say "If the address is in the database, an email will be sent shortly.
     Check your spam folder yadda yadda. If you still don't receive an
     email, that means the email was not in our database: contact us."

close browser connection.
(wait a random amount from 0 to 5 seconds)
check that the "sent email" flag is less than 3 and the "last sent"
is more than 24 hours ago; we don't want to spam third parties.
if the email matches number was equal to 1, send the email and increment
the "sent email" flag by 1, also set "last sent" to the current datetime.

Básicamente, quienquiera que solicite el restablecimiento de la contraseña:

  • NO DEBE poder hacer otra cosa (también conocido como "Hola, Tablas de Bobby !").
  • NO DEBE saber si adivinó el correo electrónico correcto (saber si el correo electrónico de alguien está en la base de usuarios de Nasty'r'Us es una violación de la privacidad, incluso si pueden probar y decir que alguien más se inscribió)
    • ni siquiera de manera indirecta, al determinar cuánto tiempo se tarda en decir "Lo siento"
  • NO DEBE poder bombardear a alguien con mensajes de restablecimiento de contraseña
respondido por el LSerni 16.05.2018 - 08:20
fuente
0

El código parece tomar el valor del "Correo electrónico" de la solicitud y se adjunta directamente dentro de las etiquetas, cuando no se encuentra una cuenta.

    
respondido por el Nitin_Ramesh 16.05.2018 - 08:22
fuente

Lea otras preguntas en las etiquetas