XST
Cross Site Tracing (XST)
XST es un ataque el cual se basa en el uso del método http TRACE y XSS. Al realizar una petición a un servidor con el método http TRACE (o TRACK en servidores IIS) retorna al cliente los datos de la petición tal cual la recibió el servidor. Lo importante para destacar, es que si en la petición que realiza el cliente se envían cookies también las vamos a recibir en la respuesta. Por tal motivo, mediante XSS se podría realizar una petición TRACE y en la respuesta obtener las cookies, esto es útil para cuando las cookies tienen el flag httpOnly el cual no permite que se accedan directamente desde Javascript con document.cookies.
Ejemplos
Ejecución de una petición TRACE a localhostSi ejecutamos: $ curl -X TRACE localhostObtenemos como respuesta:TRACE / HTTP/1.1Host: localhostUser-Agent: curl/7.58.0Accept: */*
Ejecución de una petición TRACE a localhost con cookiesAhora vamos a realizar la misma petición que la anterior, con la diferencia que en esta enviamos una cookie.Ejecutamos: curl -X TRACE -H "Cookie: token=t0k3nd3s3s10n" localhost
Respuesta:TRACE / HTTP/1.1Host: localhostUser-Agent: curl/7.58.0Accept: */*Cookie: token=t0k3nd3s3s10n
Petición TRACE con JavascriptVeamos un ejemplo del script que podríamos ejecutar mediante XSS para obtener las cookies:<script> var xmlhttp = new XMLHttpRequest(); var url = "http://localhost/";
xmlhttp.withCredentials = true; //Se envían las cookies. xmlhttp.open("TRACE", url, false); xmlhttp.send();</script>
Actualmente, los navegadores no permiten realizar esta petición por TRACE.
En este artículo participaron:
No hay autores registrados