Durante la realización de pruebas de auditoría generalmente es necesario identificar los métodos que se encuentran activos en los servidores Web, existen para ello distintas formas que permitirán remotamente verificar que métodos están activos.
A continuación se describen varias formas para el método TRACE:
Verificación del método TRACE.
1. Conectando al servicio y enviando la cadena TRACE / HTTP/1.0, si el servidor de vuelve el valor 200 significará que el método está activo.
freed0m@satelite:~$ nc www.sitecontrace.es 80
TRACE / HTTP/1.0
HTTP/1.0 200 OK
Server: Microsoft-IIS/5.0
Date: Mon, 21 Nov 2005 20:38:02 GMT
X-Powered-By: ASP.NET
Content-Type: message/http
Content-Length: 191
Age: 134
freed0m@satelite:~$
2. Está verificación también se podrá hacer mediante el método OPTIONS, que nos mostrará que métodos están activos.
freed0m@satelite:~$ nc www.siteconoptions.es 80
OPTIONS / HTTP/1.0
HTTP/1.0 200 OK
Server: Microsoft-IIS/5.0
Date: Mon, 21 Nov 2005 20:39:41 GMT
X-Powered-By: ASP.NET
MS-Author-Via: DAV
Content-Length: 0
Accept-Ranges: none
DASL:
DAV: 1, 2
Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
Allow: OPTIONS, TRACE, GET, HEAD, COPY, PROPFIND, SEARCH, LOCK, UNLOCK
Cache-Control: private
Age: 133
En este caso no existe únicamente el método TRACE.
A continuación se verá como verifican herramientas como Nessus la presencia del método TRACE, visualizando el código del plugin:
http://www.nessus.org/plugins/index.php?view=viewsrc&id=11213
...
cmd1 = ereg_replace(pattern:"GET /", string:cmd1, replace:"TRACE /");
cmd2 = ereg_replace(pattern:"GET /", string:cmd2, replace:"TRACK /");
...
if(egrep(pattern:"^TRACE "+file+" HTTP/1\.", string:reply))
...
if(egrep(pattern:"^TRACK "+file+" HTTP/1\.", string:reply))
Puede verse que se realiza una petición TRACE y TRACK para verificar ambos métodos.
Otras consideraciones:
El método TRACE ha permitido que se puedan explotar ciertas vulnerabilidades, además es un método que debería de estar deshabilitado en entornos de producción, por lo que se aconseja que este deshabilitado.
Detalle de algunas vulnerabilidades:
http://www.kb.cert.org/vuls/id/867593
http://www.securityfocus.com/bid/9506
http://www.securityfocus.com/bid/9561
http://www.securityfocus.com/bid/11604
Referencia al método TRACE en el RFC:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.8


Comentarios
Añadir comentario