El Problema de la implementacion del HTTP 1.1 en Software de Red By Xianur0

Iniciado por ANTRAX, Febrero 19, 2010, 08:06:38 AM

Tema anterior - Siguiente tema

0 Miembros y 5 Visitantes están viendo este tema.

El Problema de la implementacion del HTTP 1.1 en Software de Red

Este paper estara explicado con una estructura vulnerable de un proxy cache comercial cuyo nombre no mencionare ya que no es relativo.

Directivas HTTP 1.0 y HTTP 1.1

HTTP/1.0
Esta version de HTTP integra unicamente 3 metodos:

HEAD: Solicitar únicamente Headers HTTP.
GET: Solicitar Headers y el contenido de la web (HTML).
POST: Remite Datos que no se muestran en la URL.

HTTP/1.1

Integra además de los métodos de HTTP 1.0 los siguientes:
OPTIONS
PUT
DELETE
TRACE
CONNECT
SEARCH
entre otros..

Ademas permite concatenar 2 consultas HTTP:

CitarGET / HTTP/1.1
Host: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

GET / HTTP/1.1
Host: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


2 consulas HTTP continuas daran como resultado, 2 respuestas http (a cada una) en la misma respuesta (misma conexion).


Proxy caché: Servidor con memoria que puede almacenar y actualizar las páginas Web más consultadas por los internautas disminuyendo así el tiempo de acceso a dichas páginas, que también son consultables en tiempo diferido disminuyendo de esta manera el tráfico en la red.

Es decir haciendo un diagrama:

Cliente -> gateway/proxy cache y si no tiene los datos -> servidor.
Servidor -> gateway/Proxy cache -> Cliente.


El proxy cache en esta instancia almacena una copia de la pagina solicitada, para consultas futuras a dicha pagina.
Time To Live (TTL): Tiempo de vida se refiere al tiempo en que un dato es valido, es decir algo como en los DNS:

DNS Primario actualiza a -> Server DNS Secundario.

Server DNS secundario almacena los datos del primario y los mantiene en su memoria un tiempo para consultas de clientes, pero cuando pasa el TTL, solicita nuevos datos al primario para estar actualizado en los registros.
Es similar en los proxys cache.

Cliente Solicita el index.htm (GET /index.htm HTTP/1.1) -> Proxy Cache (GET /index.htm HTTP/1.1)-> Servidor.
Servidor envia el index.htm (El HTML)-> Proxy Cache Guarda una copia y la envia (HTML)-> Cliente ya tiene en su navegador el index.htm


Metodología del Envenenamiento:

Cliente Envia 2 consultas HTTP:

CitarGET / HTTP/1.1
Host: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

GET /xss.htm HTTP/1.1
Host: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


El Proxy Cache leera toda la consulta pero solo reconocerá 1 como la consultada "/". Conecta a Servidor y envia las 2 consultas como 1 sola.

CitarGET / HTTP/1.1
Host: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

GET /xss.htm HTTP/1.1
Host: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Servidor tiene como virtual host a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, y reconoce las 2 consultas pero sigue la directiva de HTTP/1.1 y envia los resultados de las 2 consultas HTTP en la misma conexion (Envia los respectivos headers y los respectivos códigos de / y de xss.htm).

Proxy Cache guarda los 2 códigos y el header como si fuera solo la pagina / y envia los 2 codigos al atacante o cliente 1.

Cliente 2, consulta únicamente a / de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta:

CitarGET / HTTP/1.1
Host: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Proxy cache tiene el archivo en su cache asi que lo envia, pero el registro contiene la pagina solicitada y debajo de ella tiene concatenado el código de xss.htm.

Conclusión: Cache Envenenado!.

By Xianur0!.[/b]