Tl; Dr: Encontré una grave amenaza para la seguridad en el sistema de calificaciones de mi departamento de Matemáticas y no estoy seguro de cómo convencerlos de que lo tomen en serio.
Estaba un poco aburrido durante una conferencia, así que decidí probar el sistema de calificaciones del departamento de Matemáticas de mi universidad. Ingresé mi nombre de usuario, lo llamaré "Foo" así como mi contraseña, "Foo123". El sistema inició sesión normalmente. Luego, usé "Foo" nuevamente como nombre de usuario y "Foo1234" como contraseña. Para mi sorpresa, el sistema inició sesión! Estaba muy intrigado en este punto y lo intenté de nuevo con "Foo123wkfjdbwkefbkwdhfbwkfbwkdbw" ¡y otra vez se conectó!
Creo que el departamento guarda la contraseña en formato sin formato (en lugar de un hash) porque claramente usan una versión de x.contains (real_raw_password). Por ejemplo, cuando publiqué "Foo123wkfjdbwkefbkwdhfbwkfbwkdbw", supongo que el back-end hizo algo parecido a:
if ("Foo123wkfjdbwkefbkwdhfbwkfbwkdbw" .contains (ActualPasswordString)): Login () Esta es una amenaza de seguridad muy seria que creo que deberían abordar, ya que 1) almacenan la contraseña como texto sin procesar y 2) usan un .contains en la cadena real enviada, cuando en realidad puedo enviar una cadena con diferentes combinaciones de contraseñas y se devolvería verdadero si hubiera alguna subcadena en ella.
Sin embargo, no estoy seguro de cómo acercarme al departamento y convencerlos de que necesitan abordarlo. ¿Algún consejo sobre cómo abordarlo especialmente si no es un departamento de CS?