14 nov 2014

Cómo funciona HTTP Response Splitting

También conocido como CRLF Injection Attack, HTTP response splitting es técnica en la que un atacante se vale de la inyección de retornos de carro y de línea para alterar una respuesta HTTP y separarla en dos (de ahí su nombre). De esta forma puede incluir cualquier contenido en la segunda petición y poner en riesgo la seguridad y privacidad de los usuarios que visitan la web, así como pudiendo alterar la página. Típicamente, permite inyectar JavaScript.

Funcionamiento de un HTTP response splitting

El navegador inicia una petición (sea GET, POST o cualquiera de los otros verbos que usa HTTP) que se envía al servidor web. Este a su vez responde con un código de estado (2XX para éxito, 3XX para redirección, 4XX para error etc…) y el contenido de la respuesta, que habitualmente incluye el HTML de una web que será interpretada por el navegador del cliente.

Las diferentes líneas de una petición GET, por ejemplo, se separan por un retorno de carro y otro de línea (%0d y %0a). Si se añaden artificialmente en la petición con la intención de añadir nuevos campos, o incluso una segunda petición construida desde cero por el atacante, se produce el ataque. Abajo se muestra un diagrama de este proceso, de un ejemplo lanzado contra un servidor vulnerable de prueba:
En esta petición se ha modificado un parámetro GET y en él se ha introducido un retorno de carro (%0d) y uno de línea (%0a) seguidos de las nuevas líneas de cada campo (Un "Content-Type" y un código JavaScript) separadas a su vez por otro CRLF (%0d%0a).

Contenido completo en fuente original ElevenPath

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!