Post

HTTP Response Splitting

Descripción

Este tipo de ataque de inyección de headers ocurre cuando un atacante envía datos arbitrarios al servidor y estos datos se devuelven como parte de la respuesta HTTP.

Como siguiere el nombre, el objetivo HTTP Response Splitting (ataque de divisoón de respuesta HTTP) es dividir la respuesta en dos partes por el medio de caracteres especiales como:

  • CR (Carriage Return) \r
  • LF (Line Feed) \n

Header Injection Attack v/s HTTP Response Splitting

La diferencia entre un Header Injection Attack y un HTTP Response Splitting es que en el segundo no solo estamos inyectando datos en los Headers, sino que también estamos creando un bloque de respuesta HTTP completamente nuevo con nuevos Headers.

PoC

Se encuentra destacado en rojo la entrada reflejada por el usuario.

Alt text

A continuación se muestra la explotación inyectando contenido adicional es cual es reflejado en la respuesta del servidor.

Alt text

XSS Throught HTTP Response Splitting

En el siguiente ejemplo, realizaremos un ataque XSS a través de un HTTP Response Splitting. La repuesta contiene el siguiente código:

1
2
3
<script>
    alert(document.cookie);
</script>

Alt text

Request:

Alt text

Response:

Alt text

This post is licensed under CC BY 4.0 by the author.