Probando el método HTTP TRACE

39

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

Necesito entrenar a un probador sobre cómo verificar que el método HTTP TRACE esté deshabilitado.

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

Background:

Nuestros analizadores de seguridad de seguridad identificaron una vulnerabilidad de HTTP TRACE y debemos demostrar que está arreglado.

Referencias:

pregunta Andrew Russell 27.02.2013 - 22:34
fuente

6 respuestas

49

La forma más sencilla en la que puedo pensar es usar cURL (que es de secuencias de comandos).

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

Ejecutarlo en un servidor Apache con TraceEnable Off devuelve HTTP/1.1 405 Method Not Allowed (solo 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 del hombre perezoso de Google

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
    
respondido por el LSerni 28.02.2013 - 00:17
fuente
5

Hay dos formas:

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

PASO 2:

TRACE / HTTP/1.1
host: example.com

(presiona entrar dos veces)

o

OPTIONS / HTTP/1.1
host: example.com

(presiona enter dos veces) (Es posible que tenga que pegarlos rápidamente, así que copie los pegue en lugar de escribirlos) PASO 3: verifique si la salida debería dar un error 400 si no me equivoco.

Otra herramienta que puedes usar es gnutls.

    
respondido por el Lucas Kauffman 27.02.2013 - 23:08
fuente
5

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

  1. configure su navegador para pasar a través del proxy elegido;
  2. realizar una solicitud HTTP normal (por ejemplo, GET /index.php HTTP/1.1 ) e interceptarla;
  3. cambie el método HTTP a TRACE y envíe la solicitud al servidor;
  4. verifique la respuesta HTTP.

Si la respuesta incluye la solicitud completa, TRACE se habilita y funciona correctamente.

    
respondido por el Gurzo 27.02.2013 - 23:57
fuente
3

Lo que todos los demás dijeron era exacto en cuanto al envío de la prueba, sin embargo, nadie ha dado una identificación correcta para determinar si es vulnerable. Los diferentes servidores responderán de manera diferente, sin mencionar que 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 (de los que he tenido conocimiento).

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

2) El objetivo devuelve los encabezados que pasaste.

    
respondido por el Eric 28.02.2013 - 04:37
fuente
3

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
    
respondido por el Anonymous Platypus 06.03.2015 - 09:48
fuente
2

Aprecio todas las excelentes respuestas proporcionadas por los usuarios expertos del sitio web. Vi sus referencias de preguntas y usted mencionó acerca de 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 de encabezado y simplemente hacer clic en ir. La respuesta se verá en el texto de abajo.

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

MÉTODO ALTERNO

enlace

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

NOTA EN EL RASTREO

Firefox actualmente no admite la función TRACE (a través de xmlHttpRequest). CAL9000 obtiene la información TRACE de un script del lado del servidor. Además, un recordatorio de que cualquier solicitud dirigida a un recurso ( enlace ) no necesariamente generará la misma respuesta que una dirigida. en un directorio ( enlace ), aunque estén en el mismo sitio.

    
respondido por el Saladin 28.02.2013 - 15:14
fuente

Lea otras preguntas en las etiquetas