it-swarm-eu.dev

Test per il metodo HTTP TRACE

Come posso testare HTTP TRACE sul mio web-server?

Devo addestrare un tester su come verificare che il metodo HTTP TRACE sia disabilitato.

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

Background:

I nostri tester per penne di sicurezza hanno identificato una vulnerabilità di HTTP TRACE e dobbiamo dimostrare che è stata corretta.

Riferimenti:

46
Andrew Russell

Il modo più semplice a cui riesco a pensare è usare cURL (che è scriptabile).

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

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

Questo funziona anche su siti HTTPS, a condizione che cURL abbia le informazioni corrette fornite al livello SSL. Questo è il controllo dell'uomo 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 perché vogliamo controllare lo stato 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
53
LSerni

Ci sono due modi:

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

PASSO 2 :

TRACE / HTTP/1.1
Host: example.com

(premere Invio due volte)

o

OPTIONS / HTTP/1.1
Host: example.com

(premere Invio due volte) (potrebbe essere necessario incollarli rapidamente, quindi copiarli incollandoli piuttosto digitandoli) PASSO 3: Verifica se l'output, dovrebbe dare l'errore 400 se non sbaglio.

Un altro strumento che puoi usare è gnutls.

6
Lucas Kauffman

È possibile utilizzare un proxy , come Burp Suite o Zap e seguire alcuni semplici passaggi:

  1. imposta il tuo browser per passare attraverso il proxy scelto;
  2. effettua una normale richiesta HTTP (ad esempio GET /index.php HTTP/1.1) e intercettarlo;
  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, TRACE è abilitato e funziona correttamente.

5
Gurzo

Ciò che tutti gli altri hanno detto è stato accurato per quanto riguarda l'invio del test, tuttavia nessuno ha fornito un'identificazione corretta per sapere se è vulnerabile. Server diversi risponderanno in modo diverso, per non parlare di eventuali riscritture mod su una richiesta TRACE/TRACK. Esistono 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) Il target restituisce qualsiasi codice di stato <400 o> = 600

2) Il bersaglio restituisce le intestazioni che hai passato.

3
Eric

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
3

Apprezzo tutte le grandi risposte fornite dagli utenti esperti del sito Web. Ho visto il riferimento alle tue domande e hai menzionato OWASP. Sto considerando che hai familiarità con l'uso di cd live owasp ed esp owasp.

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

Il motivo per cui consiglierei questo strumento più dell'altro, è che questo strumento è fornito da una comunità che è più capovolta nei concetti di sicurezza delle applicazioni rispetto a qualsiasi altra. Questi strumenti sono testati e verificati da esperti. Maggiori informazioni riferimento owasp

METODO ALTERNATIVO

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

è una versione online dello strumento.

NOTA SULLA TRACCIA

Firefox attualmente non supporta la funzione TRACE (tramite xmlHttpRequest). CAL9000 ottiene le informazioni su TRACE da uno script sul lato server. Inoltre, si ricorda che qualsiasi richiesta indirizzata a una risorsa ( http://www.blah.com/index.html ) non genererà necessariamente la stessa risposta di quella indirizzata a una directory (- http://www.blah.com/js/ ), anche se si trovano sullo stesso sito.

2
Saladin