it-swarm-es.com

Prueba para el método HTTP TRACE

¿Cómo puedo probar HTTP TRACE en mi servidor web?

Necesito entrenar a un Tester para verificar que el método HTTP TRACE esté deshabilitado.

Idealmente, necesito una secuencia de comandos para pegar en Firebug para iniciar una conexión https para devolver la respuesta del servidor web a un comando HTTP TRACE.

Antecedentes:

Nuestros Pen Testers de seguridad identificaron una vulnerabilidad de HTTP TRACE y debemos demostrar que está solucionado.

Referencias:

46
Andrew Russell

La forma más simple en que puedo pensar es usando cURL (que es programable).

 curl -v -X TRACE http://www.yourserver.com

Ejecutarlo contra un servidor Apache con TraceEnable Off devuelve correctamente HTTP/1.1 405 Method Not Allowed (recién probado en un Apache 2.2.22)

Esto también funciona en sitios HTTPS, siempre que cURL tenga la información correcta suministrada a la capa SSL. Este es el cheque de Google del hombre perezoso

curl --insecure -v -X TRACE https://www.google.com/

... negocia la conexión (no verifica la cadena de certificados, pero ese no es el problema aquí ya que queremos verificar el estado de TRACE), y responde 405:

* Server certificate:
*        subject: C=US; ST=California; L=Mountain View; O=Google Inc; CN=www.google.com
*        start date: 2013-02-20 13:34:56 GMT
*        expire date: 2013-06-07 19:43:27 GMT
*        subjectAltName: www.google.com matched
*        issuer: C=US; O=Google Inc; CN=Google Internet Authority
*        SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> TRACE / HTTP/1.1
> User-Agent: curl/7.25.0 (x86_64-suse-linux-gnu) libcurl/7.25.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 libssh2/1.4.0
> Host: www.google.com
> Accept: */*

< HTTP/1.1 405 Method Not Allowed
53
LSerni

Hay dos maneras:

PASO 1: openssl s_client -connect example.com:443

PASO 2 :

TRACE / HTTP/1.1
Host: example.com

(presione enter dos veces)

o

OPTIONS / HTTP/1.1
Host: example.com

(presione Intro dos veces) (es posible que necesite pegarlos rápidamente, así que cópielos y péguelos en lugar de escribirlos) PASO 3: Verifique si la salida, debería dar el error 400 si no me equivoco.

Otra herramienta que puedes usar es gnutls.

6
Lucas Kauffman

Puede usar un proxy , como Burp Suite o Zap , y siga algunos pasos simples:

  1. configura tu navegador para pasar por el proxy elegido;
  2. hacer una solicitud HTTP normal (por ejemplo, GET /index.php HTTP/1.1) e interceptarlo;
  3. cambie el método HTTP a TRACE y envíe la solicitud al servidor;
  4. verifique la respuesta HTTP.

Si la respuesta incluye toda la solicitud, TRACE está habilitado y funciona correctamente.

5
Gurzo

Lo que todos los demás dijeron fue exacto en cuanto al envío de la prueba, sin embargo, nadie ha dado una identificación correcta de si es vulnerable. Los diferentes servidores responderán de manera diferente, sin mencionar las modificaciones de mod en una solicitud TRACE/TRACK. Hay dos formas de identificar las vulnerabilidades TRACE y TRACK que parecen funcionar sin dar falsos positivos o falsos negativos (que he tenido en cuenta).

1) El objetivo devuelve cualquier código de estado <400 o> = 600

2) El objetivo devuelve los encabezados que pasaste.

3
Eric

Se puede hacer usando netcat

nc www.myhost.com 80
TRACE /mypage.html HTTP/1.1
Host: www.myhost.com

Un ejemplo de salida es

HTTP/1.1 405 Method Not Allowed
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1
Set-Cookie: JSESSIONID=rfyji7QBFFld7HwMGLVM+F8s.undefined; Path=/
Content-Type: text/html;charset=utf-8
Content-Length: 1125
Date: Fri, 06 Mar 2015 06:06:29 GMT
3

Agradezco todas las excelentes respuestas proporcionadas por los usuarios expertos del sitio web. Vi su referencia de preguntas y usted mencionó sobre OWASP. Estoy considerando que estás familiarizado con el uso de owasp y esp owasp live cd.

CAL9000. La herramienta tiene un campo de solicitud http en realidad es más que un campo que permite la generación personalizada de todo el encabezado http. Puede seleccionar trace definir las opciones del encabezado y simplemente hacer clic en ir. La respuesta se vería en el texto a continuación.

La razón por la que recomendaría esta herramienta más que la otra, es que esta herramienta es proporcionada por una comunidad que está más invertida en conceptos de seguridad de aplicaciones que cualquier otra. Estas herramientas son probadas y verificadas por expertos. Más información owasp ref

MÉTODO ALTERNO

http://yehg.net/pentest/CAL9000/#httpRequests

es una versión en línea de la herramienta.

NOTA SOBRE EL RASTREO

Firefox actualmente no es compatible con la función TRACE (a través de xmlHttpRequest). CAL9000 obtiene la información de TRACE de un script del lado del servidor. Además, un recordatorio de que cualquier solicitud dirigida a un recurso ( http://www.blah.com/index.html ) no necesariamente generará la misma respuesta que una dirigida a un directorio (- http://www.blah.com/js/ ), a pesar de que están en el mismo sitio.

2
Saladin