Test per il metodo HTTP TRACE

39

Come posso testare HTTP TRACE sul mio server web?

Ho bisogno di addestrare un tester su come verificare che il metodo HTTP TRACE sia disabilitato.

Idealmente ho bisogno di uno script per incollare in Firebug per avviare una connessione https per restituire la risposta del server web a un comando TRACE HTTP.

Sfondo:

I nostri Pen tester di sicurezza hanno identificato una vulerabilità HTTP TRACE e abbiamo bisogno di dimostrare che è stato risolto.

References:

posta Andrew Russell 27.02.2013 - 22:34
fonte

6 risposte

49

Il modo più semplice a cui posso pensare è usare cURL (che è scriptable).

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

Eseguirlo contro un server Apache con TraceEnable Off restituisce correttamente HTTP/1.1 405 Method Not Allowed (appena testato su un Apache 2.2.22)

Funziona anche su siti HTTPS, a condizione che cURL abbia le informazioni corrette fornite al livello SSL. Questo è l'assegno pigro di Google

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

... negozia la connessione (non verifica la catena di certificati, ma non è questo il problema dato che vogliamo verificare lo stato di TRACE ) e risponde 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
    
risposta data 28.02.2013 - 00:17
fonte
5

Ci sono due modi:

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

STEP2:

TRACE / HTTP/1.1
host: example.com

(premi invio due volte)

o

OPTIONS / HTTP/1.1
host: example.com

(premi invio due volte) (potresti doverli incollare rapidamente, quindi copiali incollandoli piuttosto digitando) PASSO 3: verifica se l'output, dovrebbe dare l'errore 400 se non sto sbagliando.

Un altro strumento che puoi usare è gnutls.

    
risposta data 27.02.2013 - 23:08
fonte
5

Potresti utilizzare un proxy , come Burp Suite o Zap e segui alcuni semplici passaggi:

  1. imposta il tuo browser per passare attraverso il proxy scelto;
  2. crea una normale richiesta HTTP (ad esempio GET /index.php HTTP/1.1 ) e intercettala;
  3. cambia il metodo HTTP in TRACE e invia la richiesta al server;
  4. controlla la risposta HTTP.

Se la risposta include l'intera richiesta, allora TRACE è abilitato e funziona correttamente.

    
risposta data 27.02.2013 - 23:57
fonte
3

Ciò che tutti hanno detto è stato accurato per quanto riguarda l'invio del test, ma nessuno ha dato una corretta identificazione per vedere se è vulnerabile. Server diversi risponderanno in modo diverso, per non parlare di eventuali riscritture mod su una richiesta TRACE / TRACK. Ci sono due modi per identificare sia le vulnerabilità TRACE che TRACK che sembrano funzionare senza dare falsi positivi o falsi negativi (di cui sono stato informato).

1) L'obiettivo restituisce qualsiasi codice di stato < 400 o > = 600

2) Il bersaglio restituisce le intestazioni che hai passato.

    
risposta data 28.02.2013 - 04:37
fonte
3

Può essere fatto usando netcat

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

Un esempio di output è

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
    
risposta data 06.03.2015 - 09:48
fonte
2

Apprezzo tutte le ottime risposte fornite dagli utenti esperti del sito web. Ho visto le tue domande come riferimento e hai menzionato OWASP . Sto considerando che sei familiare con l'uso di owasp e esp owasp live cd.

CAL9000 . Lo strumento ha un campo di richiesta http in realtà più che un campo che consente la generazione personalizzata di intestazione http intera. Puoi selezionare trace definire le opzioni dell'intestazione e semplicemente fare clic su vai. La risposta sarebbe visibile nel testo qui sotto.

La ragione per cui raccomanderei questo strumento più dell'altro, è che questo strumento è fornito da una comunità che è più rovesciata nei concetti di sicurezza delle applicazioni e di qualsiasi altra. Questi strumenti sono testati e verificati da esperti. Maggiori informazioni owasp ref

METODO ALTERNATIVO

link

è una versione online dello strumento.

NOTA SUL TRACCIA

Firefox attualmente non supporta la funzione TRACE (tramite xmlHttpRequest). CAL9000 ottiene le informazioni TRACE da uno script sul lato server. Inoltre, un promemoria sul fatto che qualsiasi richiesta diretta a una risorsa ( link ) non genererà necessariamente la stessa risposta di quella diretta in una directory ( link ), anche se si trovano sullo stesso sito.

    
risposta data 28.02.2013 - 15:14
fonte

Leggi altre domande sui tag