PHP_5_3_10_Released_2.jpg

Como siempre, todos los días dedico un tiempo para actualizarme sobre diferentes temas en el área de la Seguridad informática. Pues hoy me he topado con un artículo bastante interesante en uno de los sites que visito a diario y es referente a una debilidad en la forma en que PHP compara los Hashes.

La debilidad reside en la manera en que PHP maneja los Strings hasheados en ciertas condiciones, esto le da a un atacante la oportunidad de intentar comprometer sistemas de autenticación, Contraseñas, o cualquier otra función que involucre una comparación de hash en PHP.

La falla mayormente afecta las autenticaciones, pero puede afectar, flujos de olvido de contraseñas, chequeo binario, cookies, entre otras cosas. Según Robert Hansen, vice presidente de WhiteHat Security, dependerá totalmente del sitio y como fue construido.

Explicando un poco el problema

Como mencionamos el problema existe en la forma en que PHP maneja los Strings hasheados cuando se usan los operadores igual “==” o “!=” para compararlos. Cada vez que se usa cualquiera de estos dos operadores, PHP interpreta cualquier valor hasheado que inicie en ‘0e‘ como un valor 0. Asi que si dos contraseñas estan hasheadas y ambos hashes inician con ‘0e‘ seguido de numerales, PHP los interpreterá ambos como si su valor fuera 0. Aun cuando los hashes de ambas contraseñas son totalmente diferentes PHP los manejará ambos como el número 0, si ambos hashes inician con 0e y se utilizan los operadores ‘==’ o ‘!=’ para compararlos.

Las implicaciones son grandes ya que le da al atacante la oportunidad de intentar comprometer credenciales ingresando un valor que cuando sea hasheado, este sea interpretado como 0 por PHP. Si la contraseña es representada de la misma manera en la base de datos, el atacante tendrá acceso a la cuenta.

Mitigar el riesgo es bastante simple, los sitios que usan PHP deben analizar su código en busca de comparación de Hash usando ‘==‘ o ‘!=‘ y sustituirlos por ‘===‘ or ‘!==’ respectivamente.

Aún no he realizado mis pruebas, pero las estaré realizando y actualizando el post.

 

Fuente: DarkReading | jsitech

¿Quién está en línea?

Hay 13115 invitados y ningún miembro en línea