Solución:
La forma más simple en la 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
regresa correctamente HTTP/1.1 405 Method Not Allowed
(recién probado en 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 TRACE
estado) 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
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 enter dos veces) (es posible que deba 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 utilizar son los gnutls.
Podrías usar un apoderado, como Burp Suite o Zap, y siga algunos pasos sencillos:
- configure su navegador para que pase a través del proxy elegido;
- hacer una solicitud HTTP normal (p. ej.
GET /index.php HTTP/1.1
) e interceptarlo; - cambie el método HTTP a TRACE y envíe la solicitud al servidor;
- verifique la respuesta HTTP.
Si la respuesta incluye toda la solicitud, TRACE está habilitado y funciona correctamente.