Verificación de métodos HTTP

1

Visto 4133 veces | Publicado el 29/12/2006 | nessus www vulnerabilidades


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


noviembre 04 8:15 a.m.
carolina dijo:

Este comentario ha sido eliminado.


Añadir comentario










captcha


Búsqueda

Síguenos


El staff de Hacktimes ruega a cualquier persona interesada en la distribución y/o publicación de estos artículos que lo haga sin alterar su contenido y cite a su autor y/o la fuente original. Muchas gracias.

Todos los artículos publicados se encuentran bajo la licencia Creative Commons