web-dev-qa-db-fra.com

Test de la méthode HTTP TRACE

Comment puis-je tester HTTP TRACE sur mon serveur Web?

Je dois former un testeur à vérifier que la méthode HTTP TRACE est désactivée.

Idéalement, j'ai besoin d'un script à coller dans Firebug pour initier une connexion https pour renvoyer la réponse du serveur Web à une commande HTTP TRACE.

Contexte:

Nos testeurs de sécurité ont identifié une vulerabilité HTTP TRACE et nous devons prouver qu'elle est corrigée.

Références:

46
Andrew Russell

La façon la plus simple à laquelle je pense est d'utiliser cURL (qui est scriptable).

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

L'exécuter sur un serveur Apache avec TraceEnable Off renvoie correctement HTTP/1.1 405 Method Not Allowed (vient d'être testé sur un Apache 2.2.22)

Cela fonctionne également sur les sites HTTPS, à condition que cURL dispose des informations correctes fournies à la couche SSL. Ceci est la vérification de l'homme paresseux de Google

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

... il négocie la connexion (ne vérifie pas la chaîne de certificats, mais ce n'est pas le problème ici puisque nous voulons vérifier le statut TRACE), et répond 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

Il y a deux façons:

ÉTAPE 1: openssl s_client -connect example.com:443

ÉTAPE 2 :

TRACE / HTTP/1.1
Host: example.com

(appuyez deux fois sur entrée)

ou

OPTIONS / HTTP/1.1
Host: example.com

(appuyez deux fois sur Entrée) (vous devrez peut-être les coller rapidement, copiez-les plutôt en les tapant) ÉTAPE 3: Vérifiez si la sortie, elle devrait donner l'erreur 400 si je ne me trompe pas.

Un autre outil que vous pouvez utiliser est gnutls.

6
Lucas Kauffman

Vous pouvez utiliser un proxy , comme Burp Suite ou Zap , et suivre quelques étapes simples:

  1. configurer votre navigateur pour passer par le proxy choisi;
  2. faire une requête HTTP normale (par exemple GET /index.php HTTP/1.1) et l'intercepter;
  3. changez la méthode HTTP en TRACE et envoyez la requête au serveur;
  4. vérifiez la réponse HTTP.

Si la réponse inclut la demande entière, alors TRACE est activé et fonctionne correctement.

5
Gurzo

Ce que tout le monde a dit était exact en ce qui concerne l'envoi du test, mais personne n'a donné une identification correcte pour savoir s'il est vulnérable. Les différents serveurs répondront différemment, sans parler des réécritures de mod sur une demande TRACE/TRACK. Il existe deux façons d'identifier les vulnérabilités TRACE et TRACK qui semblent fonctionner sans donner de faux positifs ou de faux négatifs (dont j'ai été informé).

1) La cible renvoie tout code d'état <400 ou> = 600

2) La cible renvoie les en-têtes que vous avez transmis.

3
Eric

Cela peut être fait en utilisant netcat

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

Un exemple de sortie est

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

J'apprécie toutes les bonnes réponses apportées par les utilisateurs qualifiés du site. J'ai vu la référence à vos questions et vous avez parlé de OWASP. Je considère que vous êtes familier avec l'utilisation de owasp et esp owasp live cd.

CAL9000. L'outil a un champ de requête http en fait son plus puis un champ son permettent la génération personnalisée d'en-tête http entier. Vous pouvez sélectionner trace définir les options d'en-tête et cliquer simplement sur go. La réponse apparaîtra dans le texte ci-dessous.

La raison pour laquelle je recommanderais cet outil plus que l'autre, c'est que cet outil est fourni par une communauté qui est plus inversée dans les concepts de sécurité des applications que dans les autres. Ces outils sont testés et vérifiés par des experts. Plus d'informations owasp ref

MÉTHODE ALTERNATIVE

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

c'est une version en ligne de l'outil.

NOTE SUR LA TRACE

Firefox ne prend actuellement pas en charge la fonction TRACE (via xmlHttpRequest). CAL9000 obtient les informations TRACE à partir d'un script côté serveur. De plus, un rappel que toute demande adressée à une ressource ( http://www.blah.com/index.html ) ne va pas nécessairement générer la même réponse que celle adressée à un répertoire (- http://www.blah.com/js/ ), même s'ils sont sur le même site.

2
Saladin