¿Cómo se puede usar la inyección de objeto PHP sin serializar () para omitir la autenticación?

1

Así que encontré esta omisión de autenticación seguridad El aviso y la solución simplemente estaba cambiando la serialización a la codificación json.

Me pregunto cómo es realmente explotable? Sé que unserialize() puede usarse para realizar la inyección de objetos. Pero, ¿cómo se puede usar para aprovechar esta vulnerabilidad y para evitar la autenticación?

    
pregunta vincentleest 02.12.2014 - 22:47
fuente

1 respuesta

5

unserialize permite la creación de construcciones de objetos arbitrarios de cualquier clase con atributos arbitrarios. Durante la deserialización, la vida útil de un objeto y la interacción con el objeto, se pueden llamar varios métodos, incluidos métodos mágicos , usando estos Atributos arbitrariamente definibles. Un atacante puede utilizar la funcionalidad provista dentro de estos métodos llamados para su beneficio.

Al final, la capacidad de explotación de una vulnerabilidad de este tipo depende únicamente de las clases disponibles y sus funcionalidades. Eche un vistazo a la sección Ejemplos observados y Referencias de CWE -915: Modificación controlada incorrectamente de atributos de objeto determinados dinámicamente para obtener ejemplos e información adicional.

Y desde la mencionada vulnerabilidad en FreePBX es accesible sin autenticación (en realidad sucede durante el proceso de autenticación), se puede decir que omite la autenticación.

    
respondido por el Gumbo 03.12.2014 - 03:37
fuente

Lea otras preguntas en las etiquetas