lunes, junio 25, 2012

Acceder a una cookie HTTPOnly con un Applet Java

Las veces que se puede acceder a una cookie marcada con HTTPOnly por medio de un ataque de inyección de código en cliente suelen ser muy limitadas. Por ejemplo, la técnica de utilizar el método Trace por medio de un ataque XSS se ven limitadas a poder inyectar una petición Trace desde el cliente - algo bastante limitado - y a que el servidor tenga habilitado el método Trace.

Otra técnica que hemos visto este año se basaba en aprovecharse de un fallo en los mensajes de error 400 de Apache, ya que si se ponía un campo muy largo se puede leer en la respuesta la petición, por lo que se podría inyectar una cookie maliciosa para generar el error 400 y acceder en la respuesta a la cookie HTTPOnly.

Las cookies HTTPOnly están protegidas por el navegador, pero hay un momento en el que hay que tomar especial cuidado, y es cuando estas aún no han llegado al navegador, es decir, en el momento en que son entregadas por el servidor web por medio de un Set-Cookie.

En Seckkb - donde tenéis los códigos de ejemplo - han hecho un repaso intentando acceder al parámetro Set-Cookie para llegar a acceder a la cookie HTTPOnly antes de que sea protegida por el navegador intentándolo con Plugins en Adobe Flash, Sirverlight y Applets Java, y ha sido este último, haciendo uso de la función getHeaderField del paquete java.net.URLConnection el que ha permitido acceder a la cookie.

Figura 1: Cookie HTTPOnly conseguida desde un Apple Java

Esto implicaría que la inyección deberá está presente antes de que el servidor envíe la cookie, pero si se da esa circunstancia, se podría hacer un ataque que cargar un Applet y accediera a las cookies HTTPOnly que enviara el servidor.

Saludos Malignos!

Entradas populares