NGINX / HTTP TRACE

3

Tengo un servidor http Nginx con HTTP TRACE Habilitado.

Un solo nmap --script=http-methods.nse host.name da este resultado:

Not shown: 988 closed ports 
PORT     STATE    SERVICE   VERSION 
[...] 
80/tcp   open     http                   nginx 
  | http-methods: GET HEAD POST OPTIONS TRACE
  | Potentially risky methods: TRACE
  |_See http://nmap.org/nsedoc/scripts/http-methods.html
[...]
443/tcp  open     ssl/http   Apache httpd 2.2.15 ((CentOS))
[...] 
Service Info: OS: Unix

Y el resultado Telnet :

telnet host.name 80 Trying host.name... Connected to host.name. 
Escape character is '^]'.
OPTIONS / HTTP/1.1
Host: foo

HTTP/1.1 200 OK
Server: nginx
Date: Wed, 26 Sep 2012 03:23:23 GMT
Content-Type: httpd/unix-directory
Connection: keep-alive
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0


telnet host.name 80 Trying host.name... Connected to host.name. 
Escape character is '^]'. 
TRACE / HTTP/1.1 
Host: foo

**HTTP/1.1 405 Not Allowed** 
Server: nginx 
Date: Wed, 26 Sep 2012 03:27:09 GMT 
Content-Type: text/html Content-Length: 166 
Connection: close

¿Por qué no puedo recibir una respuesta 200?

    
pregunta J.E. 26.09.2012 - 05:02
fuente

1 respuesta

3

Revisé la fuente y encontré este comentario en el archivo CHANGES:

  

Cambios con nginx 0.5.17 (02 de abril de 2007)
  *) Cambio: ahora nginx siempre devuelve el estado 405 para el método TRACE.

Y en ngx_http_request.c (versión actual), una comprobación rápida de los resultados del rastreo en las líneas 1582-1587:

 if (r->method & NGX_HTTP_TRACE) {
        ngx_log_error(NGX_LOG_INFO, r->connection->log, 0,
                      "client sent TRACE method");
        ngx_http_finalize_request(r, NGX_HTTP_NOT_ALLOWED);
        return NGX_ERROR;
    }

Parece que siempre devuelve NGX_HTTP_NOT_ALLOWED si seguí el código correcto.

    
respondido por el Tate Hansen 26.09.2012 - 06:18
fuente

Lea otras preguntas en las etiquetas