468x60 Ads


viernes, 29 de noviembre de 2013

Cross Site Tracing (XST)


Cross Site Tracing (XST)

Cross Site Tracing - XST es una vulnerabilidad que se deriva de XSS y es generada por el método  HTTP TRACE que muestra las cookies que el navegador tiene para el dominio.

El método TRACE se utiliza principalmente para fines de depuración, pero Jeremiah Grossman descubrió en 2003 que se puede llegar a montar un ataque, que es conocido como XST.

El método HTTP TRACE. Este método se utiliza/ba para debugging de los servidores Web y viene activado por defecto en muchos servers. Lo único que hace es repetir toda información enviada por el cliente al server, es algo así como un echo. Un ejemplo del método Trace sería como sigue:

  $ nc 192.168.1.1 80 -vvv
    TRACE / HTTP/1.1
    Host: prueba
    User-Agent: prueba
    HTTP/1.1 200 OK
    Server: Microsoft-IIS/5.0
    Date: Mon, 07 Dec 2009 17:07:16 GMT
    X-Powered-By: ASP.NET
    Content-Type: message/http
    Content-Length: 50
    TRACE / HTTP/1.1
    Host: prueba
    User-Agent: prueba

Como se observa, el servidor responde exactamente lo mismo que le enviamos en el pedido. La parte útil para el ataque, es que si armamos un pedido HTTP TRACE desde el browser a una página en la cual se utilizan cookies, el servidor nos responderá copiando las cookies de regreso. Por ejemplo, podríamos obtener el siguiente comportamiento:

$ nc 192.168.1.1 80 -vvv
    TRACE / HTTP/1.1
    Host: prueba
    Cookie: SID=13klj12jhlkjhdf09kasdn
    HTTP/1.1 200 OK
    Server: Microsoft-IIS/5.0
    Date: Mon, 07 Dec 2009 17:15:26 GMT
    X-Powered-By: ASP.NET
    Content-Type: message/http
    Content-Length: 73
    TRACE / HTTP/1.1
    Host: prueba
    Cookie: SID=13klj12jhlkjhdf09kasdn

Si podemos obtener la cookie enviada por el browser a través de XSS, para qué necesitamos el método TRACE? bueno resulta ser que hay casos en los que no es posible obtener las cookies utilizando JavaScript (u otro lenguaje script ejecutado en el browser).

En browsers como IE6 SP1 y posteriores o Firefox 2.0.0.5 y posteriores, existe una opción de seguridad llamada HttpOnly cookies. Cuando un servidor web envía el parámetro HttpOnly dentro de las cookies, el browser no debería permitir que las cookies sean accesibles utilizando scripts como JavaScript. Esto es, si la opción HttpOnly está activada, una llamada a document.cookie nos devolverá vacío, aún cuando existan cookies. Utilizando esta propiedad se previene el robo de cookies explotando vulnerabilidades XSS, lo cual es muy bueno.

Aca es donde entra en juego el XST. A través de XST se pueden obtener cookies aún cuando está activada la característica HttpOnly. Si armamos un pedido HTTP TRACE desde el browser, éste incorporará la cookie como parte del header (la cual todavía no podemos acceder). Ahora, cuando el servidor responda al pedido TRACE, éste incluirá la cookie como parte de la respuesta….

Cómo es posible armar un pedido HTTP TRACE utilizando JavaScript? distintos browsers tienen distintos métodos. Para ejemplificar, les dejo los métodos usados por los dos browsers más conocidos, IE y Firefox.

Una forma de realizar este trabajo en Internet Explorer es utilizando el control ActiveX XMLHTTP. Un ejemplo de cómo utilizar esto para obtener cookies es el siguiente (tomado del paper CROSS-SITE TRACING (XST) de Jeremiah Grossman):


    < input onclick="”sendTrace();”" request="" trace="" type="BUTTON" value="”Send" />

En firefox la función a utilizar es muy similar:


    < INPUT TYPE=BUTTON OnClick=”sendTrace();” VALUE=”Send Trace Request”>

El uso de estas funciones tienen una restricción: no permiten al browser conectarse a otro dominio que no sea el de la página que está mostrando. Pero esto igualmente no es problema para realizar el ataque.

Jeremiah Grossman: "Cross Site Tracing (XST)


StuxnetPosted By César Calderón

Amante de todo lo relacionado con la informática, GNU/Linux, Programador, Geek. Las organizaciones gastan millones de dólares en firewalls y dispositivos de seguridad, pero tiran el dinero porque ninguna de estas medidas cubre el eslabón más débil de la cadena de seguridad: la gente que usa y administra los ordenadores.

0 comentarios:

Publicar un comentario