4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)

From OWASP
Jump to: navigation, search
This article is part of the new OWASP Testing Guide v4.
Back to the OWASP Testing Guide v4 ToC: https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents Back to the OWASP Testing Guide Project: https://www.owasp.org/index.php/OWASP_Testing_Project

Résumé

C’est très courant, et même recommandé, que les programmeurs mettent des commentaires détaillés et des métadonnées dans leur code source. Cependant des commentaires et des métadonnées, dans du code HTML, peuvent révéler des informations internes qui ne devraient pas être accessibles à de potentiels attaquants. Il faut faire une revue des commentaires et des métadonnées pour déterminer s’il y a des fuites d’information.

Objectifs du test

La revue des commentaires et métadonnées permet de mieux comprendre l’application et de trouver d’éventuelles fuites d’information.

Comment Tester

Les commentaires HTML sont souvent utilisés par les programmeurs pour déboguer une application. Parfois, ils oublient ces commentaires et les laissent en exploitation. Les testeurs doivent rechercher les commentaires HTML qui commencent par
 <!-- 
et sont terminées par :
 -->

Test en Boite Noire

Rechercher, dans le code source HTML, les commentaires contenant des informations sensibles qui pourraient aider l’attaquant à mieux comprendre l’application. Cela peut être du code SQL, des identifiants et des mots de passe, des adresses IP internes ou des informations de débogage. ...

<div class="table2">
  <div class="col1">1</div><div class="col2">Mary</div>
  <div class="col1">2</div><div class="col2">Peter</div>
  <div class="col1">3</div><div class="col2">Joe</div>

<!-- Query: SELECT id, name FROM app.users WHERE active='1' -->

</div>
...

Le testeur peut même trouver des informations telles que :

<!-- Use the DB administrator password for testing:  f@keP@a$$w0rD -->

Vérifier la version HTML et les URLs de Définition de Type de Document (DTD) pour connaître les versions applicables :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
* "strict.dtd" -- default strict DTD 
* "loose.dtd" -- loose DTD 
* "frameset.dtd" -- DTD for frameset documents 

Certaines balises META ne fournissent pas de vecteur d’attaque active mais peuvent permettre à un attaquant d’obtenir des informations à propos de l’application comme, par exemple :

<META name="author" content="Andrew Muller">

Certaines balises META modifient les entêtes des réponses HTTP comme, par exemple, la balise META http-equiv qui met dans l’entête de la réponse HTTP, la valeur de l’attribut «content».

Ainsi la balise :

<META http-equiv="expires" content="Fri, 21 Dec 2012 12:34:56 GMT">

générera dans l’entête HTTP de réponse :

expires: Fri, 21 Dec 2012 12:34:56 GMT

Et la balise suivante :

<META http-equiv="cache-control" content="no-cache">

génèrera dans l’entête HTTP :

cache-control: no-cache

Tester si cela peut permettre de réaliser une attaque par injection (par ex. une attaque CRLF). Cela peut aussi aider à déterminer le niveau de fuites de données à partir du cache du navigateur.

Une balise META usuelle, mais non conforme aux lignes directrices sur l'accessibilité des contenus Web(WCAG), est "refresh" :

<META http-equiv="refresh" content="15; URL=https://www.owasp.org/index.html">

Une utilisation usuelle de la balise META permet de spécifier les mots-clés que le moteur de recherche peut utiliser pour améliorer la qualité des résultats :

<META name="keywords" lang="en-us" content="OWASP, security, sunshine, lollipops">

Bien que la plupart des serveurs web gèrent l’indexation des moteurs de recherche avec le fichier robots.txt, cela peut aussi être géré avec des balises META. La balise suivante informe les robots de ne pas indexer et de ne pas suivre les liens sur les pages HTML contenant cette balise :

<META name="robots" content="none">

Les recommandations, élaborées par le consortium international W3C, telles que PICS «plate-forme de sélection du contenu Internet» ou, POWDER «protocole de description des ressources du Web» fournissent une infrastructure d’association des métadonnées avec un contenu Internet.

Test en Boite Grise

Non applicable.

Outils

  • Wget
  • Fonction du navigateur "voir le code source"
  • Eyeballs
  • cURL

Références

[1] http://www.w3.org/PICS/ PICS, plate-forme de sélection du contenu Internet
[2] http://www.w3.org/2009/09/powder-pr.html.fr POWDER, protocole de description des ressources du Web

Livres Blancs [1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (pour petits appareils)
[3] http://www.w3.org/TR/html5/ HTML version 5