<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vall</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vall"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Vall"/>
		<updated>2026-04-30T08:46:06Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_r%C3%A9f%C3%A9renc%C3%A9s_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202333</id>
		<title>4.3.4 Revue des fichiers obsolètes, de sauvegarde, non référencés pour recherche d'informations sensibles (OTG-CONFIG-004)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_r%C3%A9f%C3%A9renc%C3%A9s_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202333"/>
				<updated>2015-10-19T20:05:25Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Review&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bien que la plupart des fichiers d’un serveur Web soient gérés directement par le serveur lui-même, il n’est pas inhabituel d’y trouver des fichiers non référencés, ou oubliés, qui permettent d’obtenir des informations sensibles sur l’infrastructure ou sur des justificatifs d’accès. &lt;br /&gt;
&lt;br /&gt;
La plupart des scénarios reposent sur la présence d'anciennes versions de fichiers modifiés et renommés, sur des fichiers d'inclusion, qui ont été chargés selon les règles du langage utilisé, et qui peuvent être téléchargés en tant que fichiers sources, ou même des sauvegardes automatiques, ou manuelles, telles que des fichiers d'archives compressées. Des fichiers de sauvegarde peuvent aussi être générés automatiquement par le système de fichiers sur lequel l’application est hébergée, une fonction habituellement appelée &amp;quot;copie instantanée&amp;quot; ou &amp;quot;snapshot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tous ces fichiers peuvent permettre au testeur d’accéder au fonctionnement interne, aux portes dérobées, aux interfaces d’administration, ou même aux justificatifs d'accès privilégiés permettant de se connecter à l'interface d'administration et au serveur de bases de données. &lt;br /&gt;
&lt;br /&gt;
Les fichiers n’ayant aucun lien avec l’application et, ayant été générés par l’édition de fichiers d’application, ou issus de copies de sauvegarde instantanées, ou les fichiers obsolètes, ou non référencés, laissés dans l’arborescence du serveur Web, sont une source importante de vulnérabilités.&lt;br /&gt;
&lt;br /&gt;
Editer des fichiers sur le serveur de production ou, y faire d’autres actions d'administration, peut y laisser malencontreusement des copies de sauvegarde qu'elles soient générées, automatiquement par l’éditeur lors d'une édition de fichiers, ou directement par l’administrateur lorsqu'il crée un fichier zippé d’un ensemble de fichiers pour faire une sauvegarde. &lt;br /&gt;
&lt;br /&gt;
Il est facile d’oublier de tels fichiers et cela peut présenter de sérieuses menaces de sécurité pour l’application. Cela arrive parce que les copies de sauvegarde peuvent être générées avec des extensions de sauvegarde différentes des fichiers originaux. Une archive .tar, .zip ou .gz que nous générons (et oublions) a, bien sûr, une extension différente, et il arrive la même chose avec les copies générées par beaucoup éditeurs (par exemple, emacs génère une copie de sauvegarde nommée ''file~'' lorsqu’on édite ''file''). Une copie manuelle peut aboutir au même résultat (comme copier ''file'' en ''file.old''). Le système de fichier sous-jacent peut faire des «copies instantanées» de vos applications, à différents moments, sans que vous le sachiez, et ils peuvent être accessibles par le Web, ce qui présente une menace de type «fichiers de sauvegarde», différente mais similaire, pour votre application.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ces activités peuvent générer des fichiers non nécessaires à l’application qui peuvent être gérés différemment des fichiers originaux par le serveur Web. Par exemple, si nous faisons une copie du fichier ''login.asp'' vers ''login.asp.old'', nous permettons aux utilisateurs de télécharger le code source de ''login.asp''. Ceci parce ''login.asp.old'' sera habituellement ouvert comme un fichier texte ou brut plutôt qu’exécuté à cause de son extension. En d’autres termes, l’accès au fichier ''login.asp'' entraîne l’exécution sur le serveur du code ''login.asp'' tandis que l’accès au fichier ''login.asp.old'' conduit à renvoyer simplement à l'utilisateur le contenu du fichier ''login.asp.old'' (qui est, là aussi, le code du serveur) et à l'afficher sur le navigateur de l’utilisateur. Cela présente des risques de sécurité puisque des informations de sécurité peuvent ainsi être révélées.&lt;br /&gt;
&lt;br /&gt;
Généralement, exposer le code du serveur n’est pas une bonne idée. Non seulement, vous exposez inutilement la logique métier mais vous pouvez divulguer sans le savoir des informations relatives à l’application qui peuvent aider l’attaquant (chemin d’accès, structures des données, etc...). Ceci sans mentionner le fait qu’on trouve beaucoup trop de scripts avec des comptes et mots de passe en clair (ce qui est une pratique imprudente et dangereuse).&lt;br /&gt;
&lt;br /&gt;
D’autres causes de fichiers non référencés sont dues aux choix de conception et de configuration qui permettent à toutes sortes de fichiers relatifs à l’application, comme des fichiers de données, de configuration, ou de traces, d'être stockés dans des répertoires du système de fichiers accessibles par le serveur Web. &lt;br /&gt;
&lt;br /&gt;
Ces fichiers n’ont normalement rien à faire dans l’espace du système de fichiers accessible par le Web puisqu’ils ne devraient être accessibles qu’au niveau de l’application, par l’application elle-même (et non par un utilisateur occasionnel qui navigue sur le site).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menaces ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegardes et, les fichiers anciens ou non référencés, représentent diverses menaces à la sécurité d’une application Web :&lt;br /&gt;
&lt;br /&gt;
* Les fichiers non référencés peuvent dévoiler des informations sensibles qui peuvent faciliter une attaque ciblée de l'application ; par exemple, des fichiers d'inclusion (cf &amp;quot;include&amp;quot;) qui contiennent des justificatifs d’accès aux bases de données, les fichiers de configuration qui contiennent des références à d'autres contenus cachés, ou des chemins d’accès absolus, etc...&lt;br /&gt;
&lt;br /&gt;
* Des pages non référencées peuvent contenir de puissantes fonctionnalités pouvant être utilisées pour attaquer l’application; par exemple, une page d’administration non référencée dans le contenu publié mais qui peut être accédée par n’importe quel utilisateur qui sait où la trouver.&lt;br /&gt;
&lt;br /&gt;
* D’anciens fichiers ou des fichiers de sauvegarde peuvent contenir des vulnérabilités qui ont été corrigées dans des versions plus récentes ; par exemple ''viewdoc.old.jsp'' peut contenir une vulnérabilité de type «traversée de répertoires» (''Path Traversal'') qui a été corrigée dans ''viewdoc.jsp'' mais peut toujours être exploitée par celui qui trouve cette vieille version. &lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent dévoiler le code source des pages prévues pour être exécutées sur le serveur ; par exemple, ouvrir ''viewdoc.bak'' peut renvoyer le code source de ''viewdoc.jsp'', qui peut être analysé pour en rechercher les vulnérabilités qui seraient difficiles à trouver en faisant des requêtes à l’aveugle vers la page exécutable. Alors que cette menace s’applique évidemment aux langages de script, tels que Perl, PHP, ASP, aux scripts shell, JSP, etc., cela ne se limite pas à eux seuls, comme nous le verrons dans l’exemple du prochain paragraphe.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent contenir des copies de tous les fichiers sous la racine du site Web et même ceux extérieurs au site. Cela permet à l’attaquant de rapidement énumérer l’application entière, dont les pages non référérencées, le code source, les fichiers d'inclusion, etc... Par exemple, si vous avez oublié un fichier nommé ''myservlets.jar.old'' qui contient une copie de sauvegarde des classes implémentant votre ''servlet'', vous exposez beaucoup d’informations sensibles pouvant faire l’objet de décompilation ou de rétro-ingénierie. &lt;br /&gt;
&lt;br /&gt;
* Dans certains cas, éditer ou copier un fichier ne modifie pas l’extension du fichier mais modifie le nom du fichier. Cela arrive, par exemple dans les environnements Windows, où les opérations de copie de fichier génèrent des fichiers suffixés avec «-Copie» ou des versions adaptées aux différentes langues de cette chaîne. Comme l’extension de fichier reste inchangée, ce n’est pas un cas où le fichier exécutable sera renvoyé en texte en clair par le serveur Web, donc pas un cas de divulgation de code source. Malgré tout, ces fichiers sont aussi dangereux car il y a une possibilité qu’ils contiennent une logique incorrecte ou obsolète et que, lorsqu'ils sont appelés, ils déclenchent des erreurs d’application qui, si le message d'erreur s'affiche, donnent de précieuses informations à l’attaquant.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers journaux peuvent contenir des informations sensibles de pratiques des utilisateurs de l’application, par exemple des données sensibles passées en paramètre aux URL, les ID de session, les URL visités (qui peuvent divulguer d’autres contenus non référencés), etc... D’autres fichiers journaux (ex. les journaux ftp) peuvent contenir des informations sensibles à propos de la maintenance de l’application par les administrateurs système.&lt;br /&gt;
&lt;br /&gt;
* Les copies instantanées de système de fichiers peuvent contenir des copies de code ayant des vulnérabilités corrigées dans les versions plus récentes. Par exemple, ''/.snapshot/monthly.1/view.php'' peut contenir une vulnérabilité de type «traversée de répertoire» qui a été corrigée dans ''/view.php'' mais qui peut toujours être exploitée par celui qui trouve la vieille version du fichier. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester==&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
Le test des fichiers non référencés utilise à la fois des techniques manuelles et automatiques et typiquement combine les suivantes : &lt;br /&gt;
&lt;br /&gt;
==== Déductions des conventions de nommage du contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Enumérer toutes les pages et les fonctionnalités de l’application. Cela peut être fait manuellement avec un navigateur ou en utilisant un outil d’exploration d’application (''«spidering»''). La plupart des applications utilisent une convention de nommage repérable, et organisent les ressources en pages et répertoires en utilisant des mots décrivant leurs fonctions. A partir de la convention de nommage utilisée pour le contenu publié, il est souvent possible d’en déduire le nom et l’emplacement des fichiers non référencés. Par exemple, si on trouve une page ''viewuser.asp'', alors il faut chercher ''edituser.asp'', ''adduser.asp'' et ''deleteuser.asp''. Si on trouve un répertoire ''/app/user'', il faut aussi chercher ''/app/admin'' et ''/app/manager''.&lt;br /&gt;
&lt;br /&gt;
==== Autres indices dans le contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Beaucoup d’applications Web laissent des indices dans leur contenu publié qui peuvent conduire à découvrir des fonctionnalités ou des pages cachées. Ces indices se retrouvent souvent dans le code source HTML et dans les fichiers JavaScript. Le code source de tous les contenus publiés devrait être revu manuellement pour identifier les indices laissés sur d'autres fonctionnalités et d'autres pages.&lt;br /&gt;
&lt;br /&gt;
Par exemple : &lt;br /&gt;
&lt;br /&gt;
Les commentaires des programmeurs et, les sections de code source mises en commentaire, peuvent faire référence à du contenu caché : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;A HREF=&amp;quot;uploadfile.jsp&amp;quot;&amp;gt;Upload a document to the server&amp;lt;/A&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Link removed while bugs in uploadfile.jsp are fixed          --&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScript peut contenir des liens sur des pages qui sont uniquement affichées dans l’interface graphique de l’utilisateur dans certaines circonstances : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var adminUser=false;&lt;br /&gt;
:&lt;br /&gt;
if (adminUser) menu.add (new menuItem (&amp;quot;Maintain users&amp;quot;, &amp;quot;/admin/useradmin.jsp&amp;quot;)); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les pages HTML peuvent contenir des formulaires FORM qui ont été cachés et l’élément SUBMIT désactivé : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FORM action=&amp;quot;forgotPassword.jsp&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;INPUT type=&amp;quot;hidden&amp;quot; name=&amp;quot;userID&amp;quot; value=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;lt;INPUT type=&amp;quot;submit&amp;quot; value=&amp;quot;Forgot Password&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre source d’indices, sur les répertoires non référencés, est le fichier ''/robots.txt'', fichier utilisé pour donner des instructions aux robots d’indexation du Web : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User-agent: *&lt;br /&gt;
Disallow: /Admin&lt;br /&gt;
Disallow: /uploads&lt;br /&gt;
Disallow: /backup&lt;br /&gt;
Disallow: /~jbloggs&lt;br /&gt;
Disallow: /include &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Recherche à l'aveugle ====&lt;br /&gt;
&lt;br /&gt;
Dans sa forme la plus simple, il s'agit de soumettre une liste de noms de fichiers usuels, à un moteur de requêtes, pour tenter de deviner quels sont les fichiers et les répertoires présents sur le serveur. Le script suivant, qui utilise une commande &amp;quot;netcat&amp;quot;, lira une liste de mots à partir de l'entrée stdin et réalisera une attaque élémentaire par conjecture ou &amp;quot;guessing attack&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
server=www.targetapp.com&lt;br /&gt;
port=80&lt;br /&gt;
&lt;br /&gt;
while read url&lt;br /&gt;
do&lt;br /&gt;
echo -ne &amp;quot;$url\t&amp;quot;&lt;br /&gt;
echo -e &amp;quot;GET /$url HTTP/1.0\nHost: $server\n&amp;quot; | netcat $server $port | head -1&lt;br /&gt;
done | tee outputfile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En fonction de la configuration du serveur, on pourra remplacer la commande GET par une commande HEAD pour avoir des résultats plus rapides. On pourra ensuite faire une commande ''grep'' sur le fichier de sortie pour y rechercher des codes de réponse “intéressants”. Le code de réponse &amp;quot;200&amp;quot; (OK) indique habituellement qu'une ressource valide a été trouvée (en supposant que le serveur ne renvoie pas une page d'erreur personnalisée “not found” avec un code &amp;quot;200&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Rechercher aussi les codes &amp;quot;301&amp;quot; (Déplacé), &amp;quot;302&amp;quot; (Trouvé), &amp;quot;401&amp;quot; (Non autorisé), &amp;quot;403&amp;quot; (Interdit) and 500 (Erreur Interne), qui peuvent aussi référencer des ressources et des répertoires méritant un examen plus approfondi. &lt;br /&gt;
&lt;br /&gt;
L'attaque élémentaire par conjecture doit s'effectuer sur le répertoire racine du serveur, le &amp;quot;Webroot&amp;quot; et, aussi sur tous les répertoires identifiés par d'autres méthodes d'énumération. Des attaques par conjecture, plus avancées et plus efficaces, peuvent être réalisées comme suit : &lt;br /&gt;
&lt;br /&gt;
* Identifier les extensions de fichiers utilisées dans les espaces connus de l'application (ex. jsp, aspx, html), et utiliser une liste de mots basiques complétés par chacune de ces extensions, ou utiliser une liste des extensions usuelles plus longue si les ressources le permettent). &lt;br /&gt;
&lt;br /&gt;
* Pour chaque fichier identifié par d'autres techniques d'énumération, créer une liste de mots personnalisés dérivés du nom de fichier. Préparer une liste des extensions de fichier usuels (incluant les ~, bak, txt, src, dev, old, inc, orig, copy, tmp, etc.) et utiliser chaque extension avant, après, et à la place de l'extension actuelle du fichier.&lt;br /&gt;
&lt;br /&gt;
Note : Les opérations de copie de fichiers Windows génèrent des noms de fichiers postfixés par “-Copie“ ou par des versions localisées de cette chaîne, mais ne changent pas l'extension du fichier. Bien que les fichiers “-Copie“ ne divulguent pas le source code quand on y accède, ils peuvent néanmoins divulguer des informations sensibles s'ils génèrent des erreurs quand on y accède.&lt;br /&gt;
&lt;br /&gt;
==== Informations obtenues grâce aux vulnérabilités et aux mauvaises configurations du serveur ====&lt;br /&gt;
&lt;br /&gt;
Le cas le plus flagrant, où une mauvaise configuration du serveur peut divulguer des pages non référencées, est le listage de répertoires. Rechercher dans tous les répertoires énumérés pour identifier ceux qui permettent de lister les répertoires. &lt;br /&gt;
&lt;br /&gt;
On trouve de nombreuses vulnérabilités sur des serveurs Web personnels qui permettent aux attaquants de lister du contenu non référencé, comme par exemple : &lt;br /&gt;
&lt;br /&gt;
* Vulnérabilité ?M=D de listage des répertoires sur Apache.  &lt;br /&gt;
* Nombreuses vulnérabilités de divulgations de scripts sources sur IIS. &lt;br /&gt;
* Vulnérabilités de listage de répertoires sur WebDAV sous IIS. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Utilisation de l'information accessible au public ====&lt;br /&gt;
&lt;br /&gt;
Les pages et les fonctionnalités des applications Web sur Internet, qui ne sont pas référencées par l'application elle-même, peuvent être référencées par d'autres sources du domaine public. Il existe plusieurs sources de ces références : &lt;br /&gt;
&lt;br /&gt;
* Les pages, qui ont été référencées, peuvent encore apparaître dans les archives des moteurs de recherche Internet. Par exemple, ''1998results.asp'' peut ne plus être lié à un site Web d'entreprise, mais cependant rester sur le serveur et dans les bases de données des moteurs de recherche. Cet ancien script peut contenir des vulnérabilités qui peuvent être utilisées pour compromettre le site entier. L'opérateur de recherche ''site:'' de Google peut être utilisé pour faire une recherche sur un seul domaine choisi, comme dans : ''site:www.example.com''. Utiliser les moteurs de recherche de cette façon a permis un large éventail de techniques que vous pourrez trouver utiles et qui sont décrites dans la section ''Google Hacking'' de ce Guide. Lisez-le pour affûter vos compétences de test via Google.&amp;lt;!-- ATTEntion : section Google Hacking non retrouvée --&amp;gt;&lt;br /&gt;
Les fichiers de sauvegarde ne sont probablement pas référencés par d'autres fichiers et ainsi ne doivent pas avoir été indexés par Google mais, s'ils se trouvent dans des répertoires accessibles par votre navigateur, le moteur de recherche peut en avoir connaissance.&lt;br /&gt;
&lt;br /&gt;
* De plus, Google et Yahoo conservent des versions en cache des pages trouvées par leurs robots. Même si ''1998results.asp'' a été supprimé du serveur cible, une version des pages HTML générées peut toujours être stockée par ces moteurs de recherche. Ces versions en cache peuvent contenir des références ou, des indices sur un autre contenu additionnel caché, qui existe toujours sur le serveur. &lt;br /&gt;
&lt;br /&gt;
* Du contenu, non référencé par une application cible, peut être lié à des accès par des sites Web d'un tiers. Par exemple, une application qui gère les paiements en ligne pour le compte d'un site marchand, peut contenir plusieurs fonctionnalités personnalisées qui ne doivent, normalement, être accessibles qu'en suivant les liens des sites Web de leurs clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Contournement du filtrage des noms de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Comme les filtres de liste noire sont basés sur des expressions régulières, on peut parfois profiter de fonctionnalités d'expansions opaques des noms de fichiers que le développeur n'a pas imaginé.&lt;br /&gt;
&lt;br /&gt;
Le testeur peut parfois exploiter les différences de conventions de nommage et d'analyse des noms de fichiers utilisées par l'application, le serveur Web, et le système d'exploitation sous-jacent.&lt;br /&gt;
&lt;br /&gt;
Exemple: Sous Windows, le nom de fichier long &amp;quot;c:\program files&amp;quot; devient &amp;quot;C:\PROGRA~1&amp;quot; en format court (format 8.3), après les transformations suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
– Supprime les caractères incompatibles&lt;br /&gt;
– Convertit les espaces en caractère souligné bas &amp;quot;_&amp;quot;&lt;br /&gt;
- Prend les six premiers caractères du nom &lt;br /&gt;
– Ajoute “~&amp;lt;chiffre&amp;gt;” pour différencier les fichiers dont les noms ont les mêmes six premiers caractères &lt;br /&gt;
- Cette convention change après les 3 premières collisions de noms&lt;br /&gt;
– Tronque les extensions de fichiers à trois caractères&lt;br /&gt;
- Met tous les caractères en lettres majuscules &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Réaliser un test en boite grise, sur les fichiers obsolètes ou de sauvegarde, nécessite l'examen des fichiers contenus dans les répertoires appartenant à l'ensemble des répertoires Web servis par le(s) serveur(s) internet de l'application. Théoriquement, l'examen devrait être réalisé manuellement pour être exhaustif. &lt;br /&gt;
&lt;br /&gt;
Mais la plupart du temps, les copies ou les sauvegardes de fichiers sont créés avec les mêmes conventions de nommage, aussi la recherche peut être facilement effectuée avec un script. Par exemple, les éditeurs nomment les copies de sauvegardes avec une extension reconnaissable et les êtres humains ont tendance à les nommer avec une extension ''.old'' ou une autre extension similaire et prévisible.&lt;br /&gt;
 &lt;br /&gt;
Une bonne stratégie consiste à planifier une tâche de fond périodique à la recherche de fichiers, avec des extensions qui les identifient comme de probables copies ou des sauvegardes de fichiers, et aussi à faire des vérifications manuelles sur des périodes prolongées.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Les outils d'évaluation de vulnérabilités ont tendance à inclure des vérifications pour repérer les répertoires Web avec des noms usuels (tels que “admin”, “test”, “backup”, etc.), et à recenser tout répertoire Web qui en autorise l'indexation. Si vous ne pouvez pas lister les répertoires, vous devriez essayer de vérifier les extensions probables des fichiers de sauvegarde. Regarder, par exemple, Nessus (http://www.nessus.org), Nikto2 (http://www.cirt.net/code/nikto.shtml) ou son nouveau dérivé Wikto (http://www.sensepost.com/research/wikto/), qui intègre aussi les stratégies de ''Google Hacking''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Robots d'exploration du Web : &lt;br /&gt;
&lt;br /&gt;
wget (http://www.gnu.org/software/wget/, http://www.interlog.com/~tcharron/wgetwin.html);&lt;br /&gt;
 &lt;br /&gt;
Sam Spade (http://www.samspade.org); &lt;br /&gt;
&lt;br /&gt;
Le proxy Spike comprend une fonction d'exploration de site Web (http://www.immunitysec.com/spikeproxy.html); &lt;br /&gt;
&lt;br /&gt;
Xenu (http://home.snafu.de/tilman/xenulink.html); &lt;br /&gt;
&lt;br /&gt;
curl (http://curl.haxx.se). &lt;br /&gt;
&lt;br /&gt;
Certains de ces outils sont en standard dans les distributions Linux.&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
* Les utilitaires de développement Web intègrent habituellement des outils pour identifier les liens cassés et les fichiers non référencés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mesures correctives ==&lt;br /&gt;
&lt;br /&gt;
Pour garantir une stratégie de protection efficace, les tests doivent être complétés par une politique de sécurité qui interdit clairement les pratiques dangereuses telles que :&lt;br /&gt;
&lt;br /&gt;
* Editer des fichiers directement sur le système de fichiers du serveur Web et du serveur d'application. C'est vraiment une mauvaise habitude car on sait que les éditeurs génèrent des fichiers de sauvegarde non désirés. Il est étonnant de voir comme c'est fréquent, même dans les grandes organisations. Si vous avez absolument besoin d'éditer un fichier sur un serveur de production, assurez-vous de n'y laisser que ce qui est explicitement nécessaire, et considérez que vous le faites à vos risques et périls.&lt;br /&gt;
  &lt;br /&gt;
* Vérifier soigneusement toute autre activité réalisée sur le système de fichiers exposé par le serveur Web, telles que les activités d'administration. Par exemple, si vous avez ponctuellement besoin de faire une &amp;quot;copie instantanée&amp;quot; de quelques répertoires (ce que vous devriez pas faire en production), vous pouvez être tenté, au préalable, d'en faire un fichier zippé. Faites attention de ne pas laisser l'archive derrière vous.&lt;br /&gt;
&lt;br /&gt;
* Une politique de gestion de configuration appropriée devrait aider à ne pas laisser traîner des fichiers obsolètes ou non référencés.&lt;br /&gt;
&lt;br /&gt;
* Les applications devraient être concues pour ne pas créer (ou s'appuyer sur) des fichiers stockés sous l'arborescence de répertoires exposés par le serveur Web. Les fichiers de données, de journalisation, de configuration, etc..., devraient être stockés dans des répertoires inaccessibles au serveur Web, pour éviter les possibilités de divulgation d'information (sans parler des corruptions de données si les permissions, sur les répertoires Web, autorisent l'écriture).&lt;br /&gt;
&lt;br /&gt;
* Les &amp;quot;copies instantanées&amp;quot; ou &amp;quot;snapshot&amp;quot; du système de fichiers ne devraient pas être accessibles par le Web si l'emplacement du document est sur un système de fichiers utilisant cette technologie. &lt;br /&gt;
&lt;br /&gt;
Configurer votre serveur Web pour refuser l'accès à de tels répertoires, par exemple, sous Apache une directive &amp;lt;location&amp;gt;, comme indiqué ci-dessous, devrait être mise en place :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Location ~ &amp;quot;.snapshot&amp;quot;&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_r%C3%A9f%C3%A9renc%C3%A9s_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202264</id>
		<title>4.3.4 Revue des fichiers obsolètes, de sauvegarde, non référencés pour recherche d'informations sensibles (OTG-CONFIG-004)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_r%C3%A9f%C3%A9renc%C3%A9s_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202264"/>
				<updated>2015-10-19T11:33:01Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Review&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bien que la plupart des fichiers d’un serveur Web soient gérés directement par le serveur lui-même, il n’est pas inhabituel d’y trouver des fichiers non référencés,ou oubliés, qui permettent d’obtenir des informations sensibles sur l’infrastructure ou sur des justificatifs d’accès. &lt;br /&gt;
&lt;br /&gt;
La plupart des scénarios reposent sur la présence d'anciennes versions de fichiers modifiés et renommés, sur des fichiers d'inclusion, qui ont été chargés selon les règles du langage utilisé, et qui peuvent être téléchargés en tant que fichiers sources, ou même des sauvegardes automatiques, ou manuelles, telles que des fichiers d'archives compressées. Des fichiers de sauvegarde peuvent aussi être générés automatiquement par le système de fichiers sur lequel l’application est hébergée, une fonction habituellement appelée &amp;quot;copie instantanée&amp;quot; ou &amp;quot;snapshot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tous ces fichiers peuvent permettre au testeur d’accéder au fonctionnement interne, aux portes dérobées, aux interfaces d’administration, ou même aux justificatifs d'accès privilégiés permettant de se connecter à l'interface d'administration et au serveur de bases de données. &lt;br /&gt;
&lt;br /&gt;
Les fichiers n’ayant aucun lien avec l’application et, ayant été générés par l’édition de fichiers d’application, ou issus de copies de sauvegarde instantanées, ou les fichiers obsolètes ou, non référencés laissés dans l’arborescence du serveur Web, sont une source importante de vulnérabilités.&lt;br /&gt;
&lt;br /&gt;
Editer des fichiers sur le serveur de production ou, y faire d’autres actions d'administration, peut y laisser malencontreusement des copies de sauvegarde qu'elles soient générées, automatiquement par l’éditeur lors d'une édition de fichiers, ou directement par l’administrateur lorsqu'il crée un fichier zippé d’un ensemble de fichiers pour faire une sauvegarde. &lt;br /&gt;
&lt;br /&gt;
Il est facile d’oublier de tels fichiers et cela peut présenter de sérieuses menaces de sécurité pour l’application. Cela arrive parce que les copies de sauvegarde peuvent être générées avec des extensions de sauvegarde différentes des fichiers originaux. Une archive .tar, .zip ou .gz que nous générons (et oublions) a, bien sûr, une extension différente, et il arrive la même chose avec les copies générées par beaucoup éditeurs (par exemple, emacs génère une copie de sauvegarde nommée ''file~'' lorsqu’on édite ''file''). Une copie manuelle peut aboutir au même résultat (comme copier ''file'' en ''file.old''). Le système de fichier sous-jacent peut faire des «copies instantanées» de vos applications, à différents moments, sans que vous le sachiez, et ils peuvent être accessibles par le Web, ce qui présente une menace de type «fichiers de sauvegarde», différente mais similaire, pour votre application.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ces activités peuvent générer des fichiers non nécessaires à l’application qui peuvent être gérés différemment des fichiers originaux par le serveur Web. Par exemple, si nous faisons une copie du fichier ''login.asp'' vers ''login.asp.old'', nous permettons aux utilisateurs de télécharger le code source de ''login.asp''. Ceci parce ''login.asp.old'' sera habituellement ouvert comme un fichier texte ou brut plutôt qu’exécuté à cause de son extension. En d’autres termes, l’accès au fichier ''login.asp'' entraîne l’exécution sur le serveur du code ''login.asp'' tandis que l’accès au fichier ''login.asp.old'' conduit à renvoyer simplement à l'utilisateur le contenu du fichier ''login.asp.old'' (qui est, là aussi, le code du serveur) et à l'afficher sur le navigateur de l’utilisateur. Cela présente des risques de sécurité puisque des informations de sécurité peuvent ainsi être révélées.&lt;br /&gt;
&lt;br /&gt;
Généralement, exposer le code du serveur n’est pas une bonne idée. Non seulement, vous exposez inutilement la logique métier mais vous pouvez divulguer sans le savoir des informations relatives à l’application qui peuvent aider l’attaquant (chemin d’accès, structures des données, etc...). Ceci sans mentionner le fait qu’on trouve beaucoup trop de scripts avec des comptes et mots de passe en clair (ce qui est une pratique imprudente et dangereuse).&lt;br /&gt;
&lt;br /&gt;
D’autres causes de fichiers non référencés sont dues aux choix de conception et de configuration qui permettent à toutes sortes de fichiers relatifs à l’application, comme des fichiers de données, de configuration, ou de traces, d'être stockés dans des répertoires du système de fichiers accessibles par le serveur Web. &lt;br /&gt;
&lt;br /&gt;
Ces fichiers n’ont normalement rien à faire dans l’espace du système de fichiers accessible par le Web puisqu’ils ne devraient être accessibles qu’au niveau de l’application, par l’application elle-même (et non par un utilisateur occasionnel qui navigue autour).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menaces ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegardes et, les fichiers anciens ou non référencés, représentent diverses menaces à la sécurité d’une application Web :&lt;br /&gt;
&lt;br /&gt;
* Les fichiers non référencés peuvent dévoiler des informations sensibles qui peuvent faciliter une attaque ciblée de l'application ; par exemple, des fichiers d'inclusion (cf &amp;quot;include&amp;quot;) qui contiennent les justificatifs d’accès aux bases de données, les fichiers de configuration qui contiennent des références à d'autres contenus cachés, ou des chemins d’accès absolus, etc...&lt;br /&gt;
&lt;br /&gt;
* Des pages non référencées peuvent contenir de puissantes fonctionnalités pouvant être utilisées pour attaquer l’application; par exemple, une page d’administration non référencée dans le contenu publié mais qui peut être accédée par n’importe quel utilisateur qui sait où la trouver.&lt;br /&gt;
&lt;br /&gt;
* D’anciens fichiers ou des fichiers de sauvegarde peuvent contenir des vulnérabilités qui ont été corrigées dans des versions plus récentes ; par exemple ''viewdoc.old.jsp'' peut contenir une vulnérabilité de type «traversée de répertoires» (''Path Traversal'') qui a été corrigée dans ''viewdoc.jsp'' mais peut toujours être exploitée par celui qui trouve cette vieille version. &lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent dévoiler le code source des pages prévues pour être exécutées sur le serveur ; par exemple, ouvrir ''viewdoc.bak'' peut renvoyer le code source de ''viewdoc.jsp'', qui peut être analysé pour en rechercher les vulnérabilités qui seraient difficiles à trouver en faisant des requêtes à l’aveugle vers la page exécutable. Alors que cette menace s’applique évidemment au langages de script, tels que Perl, PHP, ASP, shell scripts, JSP, etc., cela ne se limite pas à eux seuls, comme nous le verrons dans l’exemple du prochain paragraphe.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent contenir des copies de tous les fichiers sous la racine du site Web et même ceux extérieurs au site. Cela permet à l’attaquant de rapidement énumérer l’application entière, dont les pages non référérencées, le code source, les fichiers d'inclusion, etc... Par exemple, si vous avez oublié un fichier nommé ''myservlets.jar.old'' qui contient une copie de sauvegarde des classes implémentant votre ''servlet'', vous exposez beaucoup d’informations sensibles pouvant faire l’objet de décompilation ou de rétro-ingénierie. &lt;br /&gt;
&lt;br /&gt;
* Dans certains cas, éditer ou copier un fichier ne modifie pas l’extension de fichier mais modifie le nom du fichier. Cela arrive, par exemple dans les environnements Windows, où les opérations de copie de fichier génèrent des fichiers suffixés avec «-Copie» ou des versions adaptées aux différentes langues de cette chaîne. Comme l’extension de fichier reste inchangée, ce n’est pas un cas où le fichier exécutable sera renvoyé comme texte en clair par le serveur Web, donc pas un cas de divulgation de code source. Malgré tout, ces fichiers aussi sont dangereux car il y a une possibilité qu’ils contiennent une logique incorrecte ou obsolète et que, lorsqu'ils sont appelés, ils déclenchent des erreurs d’application qui, si le message d'erreur s'affiche, donnent de précieuses informations à l’attaquant.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers journaux peuvent contenir des informations sensibles de pratiques des utilisateurs de l’application, par exemple des données sensibles passées en paramètre aux URL, les ID de session, les URL visités (qui peuvent divulguer d’autres contenus non référencés), etc... D’autres fichiers journaux (ex. les journaux ftp) peuvent contenir des informations sensibles à propos de la maintenance de l’application par les administrateurs système.&lt;br /&gt;
&lt;br /&gt;
* Les copies instantanées de système de fichiers peuvent contenir des copies de code ayant des vulnérabilités corrigées dans les versions plus récentes. Par exemple, ''/.snapshot/monthly.1/view.php'' peut contenir une vulnérabilité de type «traversée de répertoire» qui a été corrigée dans ''/view.php'' mais qui peut toujours être exploitée par celui qui trouve la vieille version du fichier. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester==&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
Le test des fichiers non référencés utilise à la fois des techniques manuelles et automatiques et typiquement combine les suivantes : &lt;br /&gt;
&lt;br /&gt;
==== Déductions des conventions de nommage du contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Enumérer toutes les pages et les fonctionnalités de l’application. Cela peut être fait manuellement avec un navigateur ou en utilisant un outil d’exploration d’application (''«spidering»''). La plupart des applications utilisent une convention de nommage repérable, et organisent les ressources en pages et répertoires en utilisant des mots décrivant leurs fonctions. A partir de la convention de nommage utilisée pour le contenu publié, il est souvent possible d’en déduire le nom et l’emplacement des fichiers non référencés. Par exemple, si on trouve une page ''viewuser.asp'', alors il faut chercher ''edituser.asp'',''adduser.asp'' et ''deleteuser.asp''. Si on trouve un répertoire ''/app/user'', il faut aussi chercher ''/app/admin'' et ''/app/manager''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Autres indices dans le contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Beaucoup d’applications Web laissent des indices dans leur contenu publié qui peuvent conduire à découvrir des fonctionnalités ou des pages cachées. Ces indices se retrouvent souvent dans le code source HTML et dans les fichiers JavaScript. Le code source de tous les contenus publiés devrait être revu manuellement pour identifier les indices laissés sur d'autres fonctionnalités et d'autres pages.&lt;br /&gt;
&lt;br /&gt;
Par exemple : &lt;br /&gt;
&lt;br /&gt;
Les commentaires des programmeurs et, les sections du code source mises en commentaire par les programmeurs, peuvent faire référence à du contenu caché : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;A HREF=&amp;quot;uploadfile.jsp&amp;quot;&amp;gt;Upload a document to the server&amp;lt;/A&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Link removed while bugs in uploadfile.jsp are fixed          --&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScript peut contenir des liens sur des pages qui sont uniquement affichées dans l’interface graphique de l’utilisateur dans certaines circonstances : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var adminUser=false;&lt;br /&gt;
:&lt;br /&gt;
if (adminUser) menu.add (new menuItem (&amp;quot;Maintain users&amp;quot;, &amp;quot;/admin/useradmin.jsp&amp;quot;)); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les pages HTML peuvent contenir des formulaires FORM qui ont été cachés en désactivant l’élément SUBMIT : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FORM action=&amp;quot;forgotPassword.jsp&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;INPUT type=&amp;quot;hidden&amp;quot; name=&amp;quot;userID&amp;quot; value=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;lt;INPUT type=&amp;quot;submit&amp;quot; value=&amp;quot;Forgot Password&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre source d’indices, sur les répertoires non référencés, est le fichier ''/robots.txt'', fichier utilisé pour donner des instructions aux robots d’indexation du Web : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User-agent: *&lt;br /&gt;
Disallow: /Admin&lt;br /&gt;
Disallow: /uploads&lt;br /&gt;
Disallow: /backup&lt;br /&gt;
Disallow: /~jbloggs&lt;br /&gt;
Disallow: /include &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Recherche à l'aveugle ====&lt;br /&gt;
&lt;br /&gt;
Dans sa forme la plus simple, il s'agit de soumettre une liste de noms de fichiers usuels, à un moteur de requêtes, pour tenter de deviner quels sont les fichiers et les répertoires présents sur le serveur. Le script suivant, qui utilise une commande &amp;quot;netcat&amp;quot;, lira une liste de mots à partir de l'entrée stdin et réalisera une attaque élémentaire par conjecture ou &amp;quot;guessing attack&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
server=www.targetapp.com&lt;br /&gt;
port=80&lt;br /&gt;
&lt;br /&gt;
while read url&lt;br /&gt;
do&lt;br /&gt;
echo -ne &amp;quot;$url\t&amp;quot;&lt;br /&gt;
echo -e &amp;quot;GET /$url HTTP/1.0\nHost: $server\n&amp;quot; | netcat $server $port | head -1&lt;br /&gt;
done | tee outputfile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En fonction de la configuration du serveur, on pourra remplacer la commande GET par une commande HEAD pour avoir des résultats plus rapides. On pourra ensuite faire une commande ''grep'' sur le fichier de sortie pour y rechercher des codes de réponse “intéressants”. Le code de réponse &amp;quot;200&amp;quot; (OK) indique habituellement qu'une ressource valide a été trouvée (en supposant que le serveur ne renvoie pas une page d'erreur personnalisée “not found” avec un code &amp;quot;200&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Rechercher aussi les codes &amp;quot;301&amp;quot; (Déplacé), &amp;quot;302&amp;quot; (Trouvé), &amp;quot;401&amp;quot; (Non autorisé), &amp;quot;403&amp;quot; (Interdit) and 500 (Erreur Interne), qui peuvent aussi référencer des ressources et des répertoires méritant un examen plus approfondi. &lt;br /&gt;
&lt;br /&gt;
L'attaque élémentaire par conjecture doit s'effectuer sur le répertoire racine du serveur, le &amp;quot;Webroot&amp;quot;, et aussi sur tous les répertoires identifiés par d'autres méthodes d'énumération. Des attaques par conjecture, plus avancées et plus efficaces, peuvent être réalisées comme ceci: &lt;br /&gt;
&lt;br /&gt;
* Identifier les extensions de fichiers utilisées dans les espaces connus de l'application (ex. jsp, aspx, html), et utiliser une liste de mots basiques complétés par chacune de ces extensions ou, utiliser une liste des extensions usuelles plus longue si les ressources le permettent). &lt;br /&gt;
&lt;br /&gt;
* Pour chaque fichier identifié par d'autres techniques d'énumération, créer une liste de mots personnalisés dérivés du nom de fichier. &lt;br /&gt;
Préparer une liste des extensions de fichier usuels (incluant les ~, bak, txt, src, dev, old, inc, orig, copy, tmp, etc.) et utiliser chaque extension avant, après, et à la place de l'extension actuelle du fichier.&lt;br /&gt;
&lt;br /&gt;
Note: Les opérations de copie de fichiers Windows génèrent des noms de fichiers postfixés par “-Copie“ ou par des versions localisées de cette chaîne, mais ne changent pas l'extension du fichier. Bien que les fichiers “-Copie“ ne divulguent pas le source code quand on y accède, ils peuvent néanmoins divulguer des informations sensibles s'ils génèrent des erreurs quand on y accède.&lt;br /&gt;
&lt;br /&gt;
==== Informations obtenues grâce aux vulnérabilités et aux mauvaises configurations du serveur ====&lt;br /&gt;
&lt;br /&gt;
Le cas le plus flagrant, où une mauvaise configuration du serveur peut divulguer des pages non référencées, est l'énumération des répertoires. Rechercher dans tous les répertoires énumérés pour identifier ceux qui listent des répertoires. &lt;br /&gt;
&lt;br /&gt;
On trouve de nombreuses vulnérabilités sur des serveurs Web personnels qui permettent aux attaquants de lister du contenu non référencé, comme par exemple : &lt;br /&gt;
&lt;br /&gt;
* Vulnérabilité ?M=D de listage des répertoires sur Apache.  &lt;br /&gt;
* Nombreuses vulnérabilités de divulgations de scripts sources sur IIS. &lt;br /&gt;
* Vulnérabilités de listage de répertoires sur WebDAV IIS. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Utilisation de l'information accessible au public ====&lt;br /&gt;
&lt;br /&gt;
Les pages et les fonctionnalités, des applications Web sur Internet, qui ne sont pas référencées par l'application elle-même peuvent être référencées par d'autres sources du domaine public. Il existe plusieurs sources de ces références : &lt;br /&gt;
&lt;br /&gt;
* Les pages, qui ont été référencées, peuvent encore apparaître dans les archives des moteurs de recherche Internet. Par exemple, ''1998results.asp'' peut ne plus être lié à un site Web d'entreprise, mais cependant rester sur le serveur et dans les bases de données des moteurs de recherche. Cet ancien script peut contenir des vulnérabilités qui peuvent être utilisées pour compromettre le site entier. L'opérateur de recherche Google ''site:'' peut être utilisé pour faire une recherche sur un seul domaine choisi, comme dans : ''site:www.example.com''. Utiliser les moteurs de recherche de cette façon a permis un large éventail de techniques que vous pourrez trouver utiles et qui sont décrites dans la section ''Google Hacking'' de ce Guide. Lisez-le pour affûter vos compétences de test via Google. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ATTEntion : section Google Hacking non retrouvée --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegarde ne sont probablement pas référencés par d'autres fichiers et ainsi ne doivent pas avoir été indexés par Google mais, s'ils se trouvent dans des répertoires accessibles par votre navigateur,le moteur de recherche peut en avoir connaissance.&lt;br /&gt;
&lt;br /&gt;
* De plus, Google et Yahoo conservent des versions en cache des pages trouvées par leurs robots. Même si ''1998results.asp'' a été supprimé du serveur cible, une version des pages HTML générées peut toujours être stockée par ces moteurs de recherche. Ces versions en cache peuvent contenir des références ou, des indices sur un autre contenu additionnel caché, qui existe toujours sur le serveur. &lt;br /&gt;
&lt;br /&gt;
* Du contenu, non référencé par une application cible, peut être lié à des accès par des sites Web d'un tiers. Par exemple, une application, qui gère les paiements en ligne pour le compte d'un site marchand, peut contenir plusieurs fonctionnalités personnalisées qui ne doivent, normalement, être accessibles qu'en suivant les liens des sites Web de leurs clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Contournement du filtrage des noms de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Comme les filtres de liste noire sont basés sur des expressions régulières, on peut parfois profiter de fonctionnalités d'expansions opaques des noms de fichiers que le développeur n'a pas imaginé.&lt;br /&gt;
&lt;br /&gt;
Le testeur peut parfois exploiter les différences de conventions de nommage et d'analyse des noms de fichiers utilisées par l'application, le serveur Web, et le système d'exploitation sous-jacent.&lt;br /&gt;
&lt;br /&gt;
Exemple: Sous Windows, le nom de fichier long &amp;quot;c:\program files&amp;quot; devient &amp;quot;C:\PROGRA~1&amp;quot; en format court(format 8.3), après les transformations suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
– Supprime les caractères incompatibles&lt;br /&gt;
– Convertit les espaces en caractère souligné bas &amp;quot;_&amp;quot;&lt;br /&gt;
- Prend les six premiers caractères du nom &lt;br /&gt;
– Ajoute “~&amp;lt;chiffre&amp;gt;” pour différencier les fichiers dont les noms ont les mêmes six premiers caractères &lt;br /&gt;
- Cette convention change après les 3 premières collisions de noms&lt;br /&gt;
– Tronque les extensions de fichiers à trois caractères&lt;br /&gt;
- Met tous les caractères en lettres majuscules &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Réaliser un test en boite grise, sur les fichiers obsolètes ou de sauvegarde, nécessite l'examen des fichiers contenus dans les répertoires appartenant à l'ensemble des répertoires Web servis par le(s) serveur(s) internet de l'application. Théoriquement, l'examen devrait être réalisé manuellement pour être exhaustif. &lt;br /&gt;
&lt;br /&gt;
Mais la plupart du temps, les copies ou les sauvegardes de fichiers sont créés avec les mêmes conventions de nommage, aussi la recherche peut être facilement effectuée avec un script. Par exemple, les éditeurs nomment les copies de sauvegardes avec une extension reconnaissable et les humains ont tendance à les nommer avec une extension ''.old'' ou une autre extension similaire prédictible.&lt;br /&gt;
 &lt;br /&gt;
Une bonne stratégie consiste à planifier une tâche de fond périodique à la recherche de fichiers, avec des extensions qui les identifient comme de probables copies ou des sauvegardes de fichiers, et aussi à faire des vérifications manuelles sur des périodes prolongées.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Les outils d'évaluation de vulnérabilités ont tendance à inclure des vérifications pour repérer les répertoires Web avec des noms standard (tels que “admin”, “test”, “backup”, etc.), et à recenser tout répertoire Web qui en autorise l'indexation. Si vous ne pouvez pas lister les répertoires, vous devriez essayer de vérifier les extensions probables des fichiers de sauvegarde. Regarder, par exemple, Nessus (http://www.nessus.org), Nikto2(http://www.cirt.net/code/nikto.shtml) ou son nouveau dérivé Wikto (http://www.sensepost.com/research/wikto/), qui intègre aussi les stratégies de base du ''Google Hacking''.&lt;br /&gt;
&lt;br /&gt;
* Robots d'exploration du Web &amp;quot;spider tools&amp;quot;: &lt;br /&gt;
** wget (http://www.gnu.org/software/wget/, http://www.interlog.com/~tcharron/wgetwin.html); &lt;br /&gt;
** Sam Spade (http://www.samspade.org); &lt;br /&gt;
** Le proxy Spike comprend une fonction d'exploration de site Web (http://www.immunitysec.com/spikeproxy.html); &lt;br /&gt;
** Xenu (http://home.snafu.de/tilman/xenulink.html); &lt;br /&gt;
** curl (http://curl.haxx.se). &lt;br /&gt;
Certains de ces outils sont en standard dans les distributions Linux.&lt;br /&gt;
  &lt;br /&gt;
* Les utilitaires de développement Web intègrent habituellement des outils pour identifier les liens cassés et les fichiers non référencés.&lt;br /&gt;
&lt;br /&gt;
== Mesures correctives ==&lt;br /&gt;
&lt;br /&gt;
Pour garantir une stratégie de protection efficace, les tests doivent être complétés par une politique de sécurité qui interdit clairement les pratiques dangereuses telles que :&lt;br /&gt;
&lt;br /&gt;
* Editer des fichiers directement sur le système de fichiers du serveur Web et du serveur d'applications. C'est vraiment une mauvaise habitude car on sait que les éditeurs génèrent des fichiers de sauvegarde non désirés. Il est étonnant de voir comme c'est fréquent, même dans les grandes organisations. Si vous avez absolument besoin d'éditer un fichier sur un serveur de production, assurez-vous de n'y laisser que ce qui est explicitement nécessaire, et considérez que vous le faites à vos propres risques.&lt;br /&gt;
  &lt;br /&gt;
* Vérifier soigneusement toute autre activité réalisée sur le système de fichiers exposé par le serveur Web, telles que les activités d'administration. Par exemple, si vous avez ponctuellement besoin de faire une &amp;quot;copie instantanée&amp;quot; de quelques répertoires (ce que vous devriez pas faire en production), vous pouvez être tenté, au préalable, d'en faire un fichier zippé. Faites attention de ne pas laisser l'archive derrière vous.&lt;br /&gt;
&lt;br /&gt;
* Une politique de gestion de configuration appropriée devrait aider à ne pas laisser traîner des fichiers obsolètes ou non référencés.&lt;br /&gt;
&lt;br /&gt;
* Les applications devraient être concues pour ne pas créer (ou s'appuyer sur) des fichiers stockés sous l'arborescence de répertoires exposés par le serveur Web. Les fichiers de données, de journalisation, de configuration, etc..., devraient être stockés dans des répertoires inaccessibles au serveur Web, pour contrer les possibilités de divulgation d'information (pour ne pas mentionner les modifications de données si les permissions sur les répertoires Web autorisent l'écriture).&lt;br /&gt;
&lt;br /&gt;
* Les &amp;quot;copies instantanées&amp;quot; ou &amp;quot;snapshot&amp;quot; du système de fichiers ne devraient pas être accessibles par le Web si l'emplacement du document est sur un système de fichiers utilisant cette technologie. &lt;br /&gt;
&lt;br /&gt;
Configurer votre serveur Web pour refuser l'accès à de tels répertoires, par exemple, sous Apache une directive &amp;lt;location&amp;gt;, comme indiqué ci-dessous, devrait être mise en place :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Location ~ &amp;quot;.snapshot&amp;quot;&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_r%C3%A9f%C3%A9renc%C3%A9s_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202226</id>
		<title>4.3.4 Revue des fichiers obsolètes, de sauvegarde, non référencés pour recherche d'informations sensibles (OTG-CONFIG-004)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_r%C3%A9f%C3%A9renc%C3%A9s_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202226"/>
				<updated>2015-10-16T19:07:09Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: review&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bien que la plupart des fichiers d’un serveur Web soient gérés directement par le serveur lui-même, il n’est pas inhabituel d’y trouver des fichiers non référencés,ou oubliés, qui permettent d’obtenir des informations sensibles sur l’infrastructure ou sur des justificatifs d’accès. &lt;br /&gt;
&lt;br /&gt;
La plupart des scénarios reposent sur la présence d'anciennes versions de fichiers modifiés et renommés, sur des fichiers d'inclusion, qui ont été chargés selon les règles du langage utilisé, et qui peuvent être téléchargés en tant que fichiers sources, ou même des sauvegardes automatiques, ou manuelles, telles que des fichiers d'archives compressées. Des fichiers de sauvegarde peuvent aussi être générés automatiquement par le système de fichiers sur lequel l’application est hébergée, une fonction habituellement appelée &amp;quot;copie instantanée&amp;quot; ou &amp;quot;snapshot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tous ces fichiers peuvent permettre au testeur d’accéder au fonctionnement interne, aux portes dérobées, aux interfaces d’administration, ou même aux justificatifs d'accès privilégiés permettant de se connecter à l'interface d'administration et au serveur de bases de données. &lt;br /&gt;
&lt;br /&gt;
Les fichiers n’ayant aucun lien avec l’application et, ayant été générés par l’édition de fichiers d’application, ou issus de copies de sauvegarde instantanées, ou les fichiers obsolètes ou, non référencés laissés dans l’arborescence du serveur Web, sont une source importante de vulnérabilités.&lt;br /&gt;
&lt;br /&gt;
Editer des fichiers sur le serveur de production ou, y faire d’autres actions d'administration, peut y laisser malencontreusement des copies de sauvegarde qu'elles soient générées, automatiquement par l’éditeur lors d'une édition de fichiers, ou directement par l’administrateur lorsqu'il crée un fichier zippé d’un ensemble de fichiers pour faire une sauvegarde. &lt;br /&gt;
&lt;br /&gt;
Il est facile d’oublier de tels fichiers et cela peut présenter de sérieuses menaces de sécurité pour l’application. Cela arrive parce que les copies de sauvegarde peuvent être générées avec des extensions de sauvegarde différentes des fichiers originaux. Une archive .tar, .zip ou .gz que nous générons (et oublions) a, bien sûr, une extension différente, et il arrive la même chose avec les copies générées par beaucoup éditeurs (par exemple, emacs génère une copie de sauvegarde nommée ''file~'' lorsqu’on édite ''file''). Une copie manuelle peut aboutir au même résultat (comme copier ''file'' en ''file.old''). Le système de fichier sous-jacent peut faire des «copies instantanées» de vos applications, à différents moments, sans que vous le sachiez, et ils peuvent être accessibles par le Web, ce qui présente une menace de type «fichiers de sauvegarde», différente mais similaire, pour votre application.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ces activités peuvent générer des fichiers non nécessaires à l’application qui peuvent être gérés différemment des fichiers originaux par le serveur web. Par exemple, si nous faisons une copie du fichier ''login.asp'' vers ''login.asp.old'', nous permettons aux utilisateurs de télécharger le code source de ''login.asp''. Ceci parce ''login.asp.old'' sera habituellement ouvert comme un fichier texte ou brut plutôt qu’exécuté à cause de son extension. En d’autres termes, l’accès au fichier ''login.asp'' entraîne l’exécution sur le serveur du code ''login.asp'' tandis que l’accès au fichier ''login.asp.old'' conduit à renvoyer simplement à l'utilisateur le contenu du fichier ''login.asp.old'' (qui est, là aussi, le code du serveur) et à l'afficher sur le navigateur de l’utilisateur. Cela présente des risques de sécurité puisque des informations de sécurité peuvent ainsi être révélées.&lt;br /&gt;
&lt;br /&gt;
Généralement, exposer le code du serveur n’est pas une bonne idée. Non seulement, vous exposez inutilement la logique métier mais vous pouvez divulguer sans le savoir des informations relatives à l’application qui peuvent aider l’attaquant (chemin d’accès, structures des données, etc...). Ceci sans mentionner le fait qu’on trouve beaucoup trop de scripts avec des comptes et mots de passe en clair (ce qui est une pratique imprudente et dangereuse).&lt;br /&gt;
&lt;br /&gt;
D’autres causes de fichiers non référencés sont dues aux choix de conception et de configuration qui permettent à toutes sortes de fichiers relatifs à l’application, comme des fichiers de données, de configuration, ou de traces, d'être stockés dans des répertoires du système de fichiers accessibles par le serveur Web. &lt;br /&gt;
&lt;br /&gt;
Ces fichiers n’ont normalement rien à faire dans l’espace du système de fichiers accessible par le web puisqu’ils ne devraient être accessibles qu’au niveau de l’application, par l’application elle-même (et non par un utilisateur occasionnel qui navigue autour).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menaces ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegardes et, les fichiers anciens ou non référencés, représentent diverses menaces à la sécurité d’une application web :&lt;br /&gt;
&lt;br /&gt;
* Les fichiers non référencés peuvent dévoiler des informations sensibles qui peuvent faciliter une attaque ciblée de l'application ; par exemple, des fichiers d'inclusion (cf &amp;quot;include&amp;quot;) qui contiennent les justificatifs d’accès aux bases de données, les fichiers de configuration qui contiennent des références à d'autres contenus cachés, ou des chemins d’accès absolus, etc...&lt;br /&gt;
&lt;br /&gt;
* Des pages non référencées peuvent contenir de puissantes fonctionnalités pouvant être utilisées pour attaquer l’application; par exemple, une page d’administration non référencée dans le contenu publié mais qui peut être accédée par n’importe quel utilisateur qui sait où la trouver.&lt;br /&gt;
&lt;br /&gt;
* D’anciens fichiers ou des fichiers de sauvegarde peuvent contenir des vulnérabilités qui ont été corrigées dans des versions plus récentes ; par exemple ''viewdoc.old.jsp'' peut contenir une vulnérabilité de type «traversée de répertoires» (''Path Traversal'') qui a été corrigée dans ''viewdoc.jsp'' mais peut toujours être exploitée par celui qui trouve cette vieille version. &lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent dévoiler le code source des pages prévues pour être exécutées sur le serveur ; par exemple, ouvrir ''viewdoc.bak'' peut renvoyer le code source de ''viewdoc.jsp'', qui peut être analysé pour en rechercher les vulnérabilités qui seraient difficiles à trouver en faisant des requêtes à l’aveugle vers la page exécutable. Alors que cette menace s’applique évidemment au langages de script, tels que Perl, PHP, ASP, shell scripts, JSP, etc., cela ne se limite pas à eux seuls, comme nous le verrons dans l’exemple du prochain paragraphe.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent contenir des copies de tous les fichiers sous la racine du site Web et même ceux extérieurs au site. Cela permet à l’attaquant de rapidement énumérer l’application entière, dont les pages non référérencées, le code source, les fichiers d'inclusion, etc... Par exemple, si vous avez oublié un fichier nommé ''myservlets.jar.old'' qui contient une copie de sauvegarde des classes implémentant votre ''servlet'', vous exposez beaucoup d’informations sensibles pouvant faire l’objet de décompilation ou de rétro-ingénierie. &lt;br /&gt;
&lt;br /&gt;
* Dans certains cas, éditer ou copier un fichier ne modifie pas l’extension de fichier mais modifie le nom du fichier. Cela arrive, par exemple dans les environnements Windows, où les opérations de copie de fichier génèrent des fichiers suffixés avec «-Copie» ou des versions locales de cette chaîne. Puisque l’extension de fichier reste inchangée, ce n’est pas le cas où le fichier exécutable est renvoyé comme texte en clair par le serveur web, donc pas un cas de divulgation de code source. Malgré tout, ces fichiers aussi sont dangereux car il y a une possibilité qu’ils contiennent une logique incorrecte ou obsolète et peuvent, s'ils sont accédés, déclencher des erreurs d’application, qui donnent de précieuses informations à l’attaquant, si le message d’erreur s’affiche.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers journaux peuvent contenir des informations sensibles à propos des usages de l’application par les utilisateurs, par exemple les données sensibles passées en paramètre aux URL, les ID de session, les URL visités (qui peuvent divulguer d’autres contenus non référencés), etc... D’autres fichiers journaux (ex. les journaux ftp) peuvent contenir des informations sensibles à propos de la maintenance de l’application par les administrateurs système.&lt;br /&gt;
&lt;br /&gt;
* Les copies instantanées de système de fichiers peuvent contenir des copies de code ayant des vulnérabilités corrigées dans les versions plus récentes. Par exemple, ''/.snapshot/monthly.1/view.php'' peut contenir une vulnérabilité de type «traversée de répertoire» qui a été corrigée dans ''/view.php'' mais qui peut toujours être exploitée par celui qui trouve la vieille version du fichier. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester==&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
Le test des fichiers non référencés utilise à la fois des techniques manuelles et automatiques et typiquement combine les suivantes : &lt;br /&gt;
&lt;br /&gt;
==== Déductions du schéma de nommage du contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Dénombrer toutes les pages et les fonctionnalités de l’application. Cela peut être fait manuellement avec un navigateur ou en utilisant un outil d’exploration (« spidering ») d’application. La plupart des applications utilisent un schéma de nommage identifiable, et organisent les ressources en pages et répertoires en utilisant des mots décrivant leurs fonctions. A partir du schéma de nommage utilisé pour le contenu publié, il est souvent possible d’en déduire le nom et l’emplacement des fichiers non référencés. Par exemple, si on trouve une page ''viewuser.asp'', alors il faut chercher ''edituser.asp'',''adduser.asp'' et ''deleteuser.asp''. Si on trouve un répertoire ''/app/user'', il faut aussi chercher ''/app/admin'' et ''/app/manager''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Autres indices dans le contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Beaucoup d’applications web laissent des indices dans leur contenu publié qui peuvent conduire à découvrir des fonctionnalités ou des pages cachées. Ces indices se retrouvent souvent dans le code source HTML et dans les fichiers JavaScript. Le code source de tous les contenus publiés devrait être revu manuellement pour identifier les indices laissés concernant les fonctionnalités et les pages.&lt;br /&gt;
&lt;br /&gt;
Par exemple : &lt;br /&gt;
&lt;br /&gt;
Les commentaires et les sections commentées du code source par les programmeurs peuvent faire référence à du contenu caché : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;A HREF=&amp;quot;uploadfile.jsp&amp;quot;&amp;gt;Upload a document to the server&amp;lt;/A&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Link removed while bugs in uploadfile.jsp are fixed          --&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScript peut contenir des liens sur des pages qui sont uniquement émises dans l’interface graphique de l’utilisateur dans certaines circonstances : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var adminUser=false;&lt;br /&gt;
:&lt;br /&gt;
if (adminUser) menu.add (new menuItem (&amp;quot;Maintain users&amp;quot;, &amp;quot;/admin/useradmin.jsp&amp;quot;)); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les pages HTML peuvent contenir des FORMs qui ont été cachées en désactivant l’élément SUBMIT : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FORM action=&amp;quot;forgotPassword.jsp&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;INPUT type=&amp;quot;hidden&amp;quot; name=&amp;quot;userID&amp;quot; value=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;lt;INPUT type=&amp;quot;submit&amp;quot; value=&amp;quot;Forgot Password&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre source d’indices concernant les répertoires non référencés est le fichier ''/robots.txt'', fichier utilisé pour donner des instructions aux robots d’indexation du Web : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User-agent: *&lt;br /&gt;
Disallow: /Admin&lt;br /&gt;
Disallow: /uploads&lt;br /&gt;
Disallow: /backup&lt;br /&gt;
Disallow: /~jbloggs&lt;br /&gt;
Disallow: /include &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Recherche à l'aveugle ====&lt;br /&gt;
&lt;br /&gt;
Dans sa forme la plus simple, il s'agit de lancer une recherche de noms de fichiers usuels via un moteur de requêtes dans le but de deviner quels sont les fichiers et les répertoires existant sur le serveur. Ce script qui utilise une commande &amp;quot;netcat&amp;quot; lira une liste de mots à partir de stdin et réalisera une attaque élémentaire par conjecture ou &amp;quot;guessing attack&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
server=www.targetapp.com&lt;br /&gt;
port=80&lt;br /&gt;
&lt;br /&gt;
while read url&lt;br /&gt;
do&lt;br /&gt;
echo -ne &amp;quot;$url\t&amp;quot;&lt;br /&gt;
echo -e &amp;quot;GET /$url HTTP/1.0\nHost: $server\n&amp;quot; | netcat $server $port | head -1&lt;br /&gt;
done | tee outputfile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suivant la configuration du serveur, on pourra remplacer la commande GET par une commande HEAD pour avoir des résultats plus rapides. On pourra ensuite faire une commande grep sur le fichier de sortie pour y rechercher des codes de réponse “intéressants”. Le code de réponse &amp;quot;200&amp;quot; (OK) indique habituellement qu'une ressource valide a été trouvée (a priori, un serveur ne renvoit pas une page “not found” avec un code &amp;quot;200&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Rechercher aussi les codes &amp;quot;301&amp;quot; (Déplacé), &amp;quot;302&amp;quot; (Trouvé), &amp;quot;401&amp;quot; (Non autorisé), &amp;quot;403&amp;quot; (Interdit) and 500 (Erreur Interne), qui peuvent aussi référencer des ressources et des répertoires qui méritent plus d'investigation. &lt;br /&gt;
&lt;br /&gt;
L'attaque élémentaire par conjecture doit s'effectuer sur le répertoire racine du serveur, le &amp;quot;webroot&amp;quot;, et aussi sur tous les répertoires identifiés par d'autres méthodes d'énumeration. Des attaques par conjecture, plus avancées et efficaces, peuvent être réalisées comme ceci: &lt;br /&gt;
&lt;br /&gt;
* Identifier les extensions de fichiers utilisées dans les espaces connus de l'application (ex. jsp, aspx, html), et prendre une liste de mots de base ajoutés à ces extensions ou prendre une plus longue liste des extensions communes si les ressources le permettent). &lt;br /&gt;
&lt;br /&gt;
* Pour chaque fichier identifié par d'autres techniques d'énumeration, créer une liste de mots personnalisés dérivés du nom de fichier. &lt;br /&gt;
Prendre une liste des extensions de fichier usuels (incluant les ~, bak, txt, src, dev, old, inc, orig, copy, tmp, etc.) et utiliser chaque extension avant, après, et à la place de l'extension actuelle du fichier.&lt;br /&gt;
&lt;br /&gt;
Note: Les opérations de copie de fichiers Windows génèrent des noms de fichiers postfixés par “-Copie“ ou par des versions localisées de cette chaîne, mais ne changent pas l'extension du fichier. Bien que les fichiers “-Copie“ ne divulguent pas habituellement le source code quand on y accède, ils peuvent néanmoins divulguer des informations sensibles dans le cas où ils génèrent des erreurs quand on y accède.&lt;br /&gt;
&lt;br /&gt;
==== Informations obtenues grâce aux vulnérabilités et aux mauvaises configurations du serveur ====&lt;br /&gt;
&lt;br /&gt;
Le cas le plus flagrant où une mauvaise configuration du serveur peut divulguer des pages non référencées est l'énumération des répertoires. Rechercher dans tous les répertoires énumérés pour identifier ceux qui listent des répertoires. &lt;br /&gt;
&lt;br /&gt;
On trouve de nombreuses vulnérabilités sur des serveurs Web personnels qui permettent aux attaquants de lister du contenu non référencé, comme par exemple : &lt;br /&gt;
&lt;br /&gt;
* Vulnérabilité ?M=D de listage des répertoires sur Apache.  &lt;br /&gt;
* Nombreuses vulnérabilités de divulgations de scripts sources sur IIS. &lt;br /&gt;
* Vulnérabilités de listage de répertoires sur WebDAV IIS. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Utilisation de l'information accessible au public ====&lt;br /&gt;
&lt;br /&gt;
Les pages et les fonctionnalités, des applications web sur Internet, qui ne sont pas référencées par l'application elle-même peuvent être référencées par d'autres sources du domaine public. Il existe plusieurs sources de ces références : &lt;br /&gt;
&lt;br /&gt;
* Les pages habituellement référencées peuvent toujours apparaître dans les archives des moteurs de recherche Internet. Par exemple, ''1998results.asp'' peut ne plus être lié à un site web d'entreprise, mais cependant rester sur le serveur et dans les bases de données des moteurs de recherche. Ce vieux script peut contenir des vulnérabilités qui peuvent permettre de compromettre le site entier. L'opérateur de recherche Google ''site:'' peut être utilisé pour faire une recherche sur un seul domaine choisi, comme dans : ''site:www.example.com''. Utiliser les moteurs de recherche de cette façon a permis un large éventail de techniques que vous pourrez trouver utiles et qui sont décrites dans la section ''Google Hacking'' de ce Guide. Lisez-le pour affûter vos compétences de test via Google. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ATTEntion : section Google Hacking non retrouvée --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegarde ne sont probablement pas référencés par d'autres fichiers et ainsi ne doivent pas avoir été indexés par Google mais s'ils se trouvent dans des répertoires accessibles par votre navigateur,le moteur de recherche peut en avoir connaissance.&lt;br /&gt;
&lt;br /&gt;
* De plus, Google et Yahoo conservent des versions en cache des pages trouvées par leurs robots. Même si ''1998results.asp'' a été supprimé du serveur cible, une version de ses résultats peut toujours être stockée par ces moteurs de recherche. Ces versions en cache peuvent contenir des références ou, des indices sur un autre contenu additionnel caché, qui existe toujours sur le serveur. &lt;br /&gt;
&lt;br /&gt;
* Du contenu, non référencé par une application cible, peut être lié à des sites web d'un tiers. Par exemple, une application qui gère les paiements en ligne pour le compte d'un site marchand peut contenir une diversité de fonctionnalités sur mesure qui ne doivent, normallement, être retrouvées qu'en suivant les liens des sites web de leurs clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Contournement du filtrage des noms de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Comme les filtres de liste noire sont basés sur des expressions régulières, on peut parfois profiter de fonctionnalités d'expansions opaques de noms de fichiers qui fonctionnent d'une façon que le éveloppeur n'imagine pas.&lt;br /&gt;
&lt;br /&gt;
Le testeur peut parfois exploiter la différence dans la façon dont les noms de fichiers sont analysés par l'application, le serveur web, et le système d'exploitation sous-jacent et ses conventions de nommage de fichiers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemple: Expansion des noms de fichiers sous Windows 8.3 &lt;br /&gt;
&amp;quot;c:\program files&amp;quot; devient &amp;quot;C:\PROGRA~1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
– Supprime les caractères incompatibles&lt;br /&gt;
– Convertit les espaces en caractère souligné bas &amp;quot;_&amp;quot;&lt;br /&gt;
- Prend les six premiers caractères du nom &lt;br /&gt;
– Ajoute “~&amp;lt;chiffre&amp;gt;” pour différencier les fichiers dont les noms ont les mêmes six premiers caractères &lt;br /&gt;
- Cette convention change après les 3 premières collisions de noms&lt;br /&gt;
– Tronque les extensions de fichiers à trois caractères&lt;br /&gt;
- Met tous les caractères en lettres majuscules &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Réaliser un test en boite grise sur les vieux fichiers et les fichiers de sauvegarde nécessite l'examen des fichiers contenus dans les répertoires appartenant à l'ensemble des répertoires Web servis par le(s) serveur(s) internet de l'infrastructure de l'application. Théoriquement, l'examen devrait être réalisé manuellement pour être exhaustif. &lt;br /&gt;
&lt;br /&gt;
Quoiqu'il en soit, comme la plupart du temps les copies ou les sauvegardes de fichiers utilisent les mêmes conventions de nommage, la recherche peut être effectuée facilement par script. Par exemple, les éditeurs nomment les copies de sauvegardes avec une extension reconnaissable et les humains tendent à les nommer en .old ou une autre extension similaire prédictible.&lt;br /&gt;
 &lt;br /&gt;
Uune bonne stratégie consiste à planifier une tâche de fond périodique à la recherche de fichiers avec des extensions qui les identifient comme de probables copies ou des sauvegardes de fichiers et à faire aussi des vérifications manuelles sur des périodes plus longues.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Les outils d'évaluation de vulnérabilités tendent à inclure des vérifications pour repérer les répertoires web avec des noms standard (tels que “admin”, “test”, “backup”, etc.), et à recenser tout répertoire web qui en autorise l'indexation. Si vous ne pouvez pas lister les répertoires, vous devriez essayer de vérifier les extensions probables des fichiers de sauvegarde. Regarder par exemple Nessus (http://www.nessus.org), Nikto2(http://www.cirt.net/code/nikto.shtml) ou les nouveaux dérivés Wikto (http://www.sensepost.com/research/wikto/), qui supportent les stratégies de base du Google Hacking.&lt;br /&gt;
&lt;br /&gt;
* Robots d'exploration du Web &amp;quot;spider tools&amp;quot;: &lt;br /&gt;
** wget (http://www.gnu.org/software/wget/, http://www.interlog.com/~tcharron/wgetwin.html); &lt;br /&gt;
** Sam Spade (http://www.samspade.org); &lt;br /&gt;
** Le proxy Spike comprend une fonction d'exploration de site web (http://www.immunitysec.com/spikeproxy.html); &lt;br /&gt;
** Xenu (http://home.snafu.de/tilman/xenulink.html); &lt;br /&gt;
** curl (http://curl.haxx.se). &lt;br /&gt;
Certains de ces outils sont compris en standard dans les distributions Linux.&lt;br /&gt;
  &lt;br /&gt;
* Les utilitaires de développement Web ont généralement des outils pour identifier les liens cassés et les fichiers non référencés.&lt;br /&gt;
&lt;br /&gt;
== Remédiation ==&lt;br /&gt;
&lt;br /&gt;
Pour garantir une stratégie de protection efficace, les tests doivent être complétés par une politique de sécurité qui interdit clairement des pratiques dangereuses telles que :&lt;br /&gt;
&lt;br /&gt;
* Editer des fichiers directement sur le serveur web ou sur le système de fichiers de l'application. C'est vraiment une mauvaise habitude car il est prévisible que les éditeurs génèrent des fichiers de backup non souhaités. C'est étonnant de voir comme c'est fréquent, même dans les grandes organisations. Si vous avez absolument besoin d'éditer un fichier sur un serveur de production, assurez-vous de n'y laisser que ce qui est explicitement nécessaire, et considérez que vous le faites à vos propres risques.&lt;br /&gt;
  &lt;br /&gt;
* Vérifier soigneusement toute autre activité réalisée sur le système de fichiers exposé par le serveur Web, telles que les activités d'administration. Par exemple, si vous avez ponctuellement besoin de faire une &amp;quot;copie instantanée&amp;quot; de quelques répertoires (ce que vous devriez pas faire en production), vous pouvez être tenté au préalable d'en faire un fichier zippé. Faites attention de ne pas laisser l'archive derrière vous.&lt;br /&gt;
&lt;br /&gt;
* Une politique de gestion de configuration devrait permettre de ne pas laisser traîner des fichiers obsolètes ou non référencés.&lt;br /&gt;
&lt;br /&gt;
* Les applications devraient être concues pour ne pas créer (ou s'appuyer sur) des fichiers stockés sous l'arborescence de répertoires mis à disposition par le serveur Web. Les fichiers de données, de traces, de configuration, etc..., devraient être stockés dans des répertoires inaccessibles au serveur Web, pour contrer les possibilités de divulgation d'information (pour ne pas mentionner les modifications de données si les permissions sur les répertoires Web autorisent l'écriture).&lt;br /&gt;
&lt;br /&gt;
* Les &amp;quot;copies instantanées&amp;quot; ou &amp;quot;snapshot&amp;quot; de système de fichiers ne devraient pas être accessibles par le Web si l'emplacement du document est sur un système de fichiers utilisant cette technologie. &lt;br /&gt;
&lt;br /&gt;
Configurer votre serveur Web pour refuser l'accès à de tels répertoires, par exemple, sous Apache une directive &amp;lt;location&amp;gt;, comme indiqué ci-dessous, devrait être mise en place :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Location ~ &amp;quot;.snapshot&amp;quot;&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.5.8_Test_de_Questions-Reponses_Faibles_(OTG-AUTHN-008)&amp;diff=202187</id>
		<title>4.5.8 Test de Questions-Reponses Faibles (OTG-AUTHN-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.5.8_Test_de_Questions-Reponses_Faibles_(OTG-AUTHN-008)&amp;diff=202187"/>
				<updated>2015-10-16T17:27:18Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
Souvent appelée &amp;quot;question secrète&amp;quot;, les questions et les réponses de sécurité sont souvent utilisées pour la récupération de mots de passe oubliés ou comme un complément de sécurité en plus du mot de passe.&lt;br /&gt;
(Voir [[Testing for weak password change or reset functionalities (OTG-AUTHN-009)]]).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Elles sont habituellement générées à la création du compte et nécessitent que l'utilisateur choisisse l'une des questions prédéfinies et renseigne la réponse correspondante.&lt;br /&gt;
Parfois, il est possible que l'utilisateur puisse proposer sa propre question et sa réponse. &lt;br /&gt;
Les deux méthodes sont sujettes à des risques de sécurité.&lt;br /&gt;
&lt;br /&gt;
Dans l'idéal, ces questions secrètes devraient correspondre à des réponses connues seulement de l'utilisateur et ne pas pouvoir être découvertes ou devinées par n'importe qui.&lt;br /&gt;
C'est plus difficile que ça en a l'air.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les questions et réponses de sécurité reposent sur le secret de la réponse. Les questions et réponses devraient être choisies afin que seul le titulaire du compte sache y répondre.&lt;br /&gt;
Cependant, bien que beaucoup de réponses puissent ne pas être publiquement connues, la plupart des questions, que les sites web implémentent et mettent en avant, sont des réponses pseudo-privées.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Questions prédéfinies :'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
La majorité des questions prédéfinies sont passablement simples par nature et peuvent conduire à des réponses sans sécurité. &lt;br /&gt;
&lt;br /&gt;
Par exemple:&lt;br /&gt;
&lt;br /&gt;
* Les réponses peuvent être connues par les membres de la famille ou des amis proches de l'utilisateur, ex. &amp;quot;Quel le nom de jeune fille de votre mère?&amp;quot;, &amp;quot;Quelle est votre date de naissance?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Les réponses peuvent être facilement imaginées, ex. &amp;quot;Quelle est votre couleur préférée?&amp;quot;, &amp;quot;Quelle est votre équipe de base-ball favorite?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Les réponses peuvent être trouvées par force brute, ex. &amp;quot;Quel est le prénom de votre enseignant préféré dans le secondaire?&amp;quot; - La réponse est probablement dans une liste de prénoms courants,&lt;br /&gt;
facilement téléchargeable, et peut permettre de réaliser une simple attaque par brute force avec un script.&lt;br /&gt;
&lt;br /&gt;
* Les réponses peuvent être publiques, ex. &amp;quot;Quel est votre film préféré?&amp;quot; - la réponse peut être trouvée facilement sur la page de profil des réseaux sociaux de l'utilisateur.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Questions auto-générées:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
La difficulté de permettre aux utilisateurs de générer leur propre question est que cela leur laisse la possibilité de générer des questions absolument pas sûres, ou même de contourner&lt;br /&gt;
complètement la procédure concernant la question de sécurité. &lt;br /&gt;
&lt;br /&gt;
Voici quelques exemples du monde réel qui illustrent ce point:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Combien font 1+1?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Quel est votre username?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Mon mot de passe est M3@t$p1N&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comment Tester ==&lt;br /&gt;
&lt;br /&gt;
'''Test des questions prédéfinies faibles :'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Essayer d'obtenir la liste des questions de sécurité en créant un nouveau compte ou en suivant le lien de type “J'ai oublié mon mot de passe”. &lt;br /&gt;
&lt;br /&gt;
Essayer de générer le plus de questions possibles pour avoir une idée du type de questions posées. Si l'une des questions de sécurité se retrouve&lt;br /&gt;
dans l'une des catégories citées plus haut, alors elles sont vulnérables à une attaque (conjecture, force brute, disponible sur les réseaux sociaux, etc.).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Test des questions auto-générées faibles:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Essayer de créer des questions de sécurité en créant un nouveau compte ou, en reconfigurant les propriétés de récupération du mot de passe de votre compte existant. &lt;br /&gt;
Si le système permet à l'utilisateur de générer ses propres questions de sécurité alors il est vulnérable au fait de pouvoir créer des questions non sûres. &lt;br /&gt;
Si le système utilise les questions de sécurité auto-générées pendant la procédure de récupération du mot de passe et si les comptes utilisateur peuvent être énumérés&lt;br /&gt;
alors il sera facile pour le testeur de lister quelques questions auto-générées. (voir [[Testing for Account Enumeration and Guessable User Account (OTG-IDENT-004)]])&lt;br /&gt;
On devrait ainsi trouver plusieurs questions auto-générées faibles avec cette méthode.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Test des réponses par force brute:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Utiliser les méthodes décrites dans [[Testing for Weak lock out mechanism (OTG-AUTHN-003)]] pour déterminer si plusieurs réponses incorrectes à la question générent un blocage du compte.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
La première chose à prendre en compte, lorsqu'on essaie d'exploiter les questions de sécurité, est le nombre de questions auxquelles il faut répondre. &lt;br /&gt;
La plupart des applications ne demandent à l'utilisateur qu'une réponse à une seule question tandis que quelques applications critiques peuvent nécessiter que l'utilisateur réponde&lt;br /&gt;
à deux questions, voire plusieurs.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
L'étape suivante consiste à évaluer la robustesse des questions de sécurité. Est-ce que les réponses peuvent être obtenues par une simple recherche Google ou par une attaque d'ingénierie sociale?&lt;br /&gt;
&lt;br /&gt;
Pour faire un test d'intrusion, voilà ce qu'il faut réaliser, étape par étape, pour exploiter la procédure de la question secrète:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* L'application permet-elle à l'utilisateur final de choisir la question à laquelle il devra répondre? Si oui, se concentrer sur les questions dont la réponse est de type :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
** Une réponse “publique”; par exemple, quelque-chose qu'on peut trouver avec une simple requête à un moteur de recherche.&lt;br /&gt;
** Une réponse factuelle telle que la &amp;quot;première école&amp;quot; ou autres faits qui peuvent faire l'objet d'une recherche.&lt;br /&gt;
** Un petit éventail de réponses possibles, comme pour “quel était le modèle de votre première voiture”. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ce type de questions donnera au testeur une courte liste de réponses possibles et, sur la base de statistiques, l'attaquant pourra les classer de la plus probable à la moins probable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Determiner si possible combien d'essais sont autorisés.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
** La procédure de récupération du mot de passe permet-elle des essais illimités?&lt;br /&gt;
&lt;br /&gt;
** Y-a-t-il une période de blocage après X réponses incorrectes? &lt;br /&gt;
Garder à l'esprit que le système de blocage peut présenter un problème de sécurité par lui-même puisqu'il peut être exploité par un attaquant pour effectuer un Déni de Service contre des utilisateurs légitimes.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Prendre la question appropriée, basée sur l'analyse des points précédents, et faire une recherche pour déterminer la réponse la plus probable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La clef du succès pour exploiter et contourner la procédure des questions secrètes faibles est de trouver une question, ou un jeu de questions, qui donne(nt) la possibilité de trouver facilement les réponses&lt;br /&gt;
Rechercher toujours les questions qui vous donneront la plus grance chance statistique d'en deviner la réponse, si vous n'avez aucune idée des réponses. &lt;br /&gt;
Au final, la procédure des questions de sécurité est aussi forte que sa question la plus faible.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Références ==&lt;br /&gt;
[https://www.schneier.com/essays/archives/2005/02/the_curse_of_the_sec.html The Curse of the Secret Question]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=202186</id>
		<title>4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=202186"/>
				<updated>2015-10-16T17:26:12Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Il faut faire une revue des commentaires et des métadonnées pour déterminer s’il y a des fuites d’information.&lt;br /&gt;
&lt;br /&gt;
== Objectifs du test ==&lt;br /&gt;
&lt;br /&gt;
La revue des commentaires et métadonnées permet de mieux comprendre l’application et de trouver d’éventuelles fuites d’information. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester ==&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;pre&amp;gt; &amp;lt;!-- &amp;lt;/pre&amp;gt; et sont terminées par : &amp;lt;pre&amp;gt; --&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Mary&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Peter&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Joe&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Query: SELECT id, name FROM app.users WHERE active='1' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le testeur peut même trouver des informations telles que : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Use the DB administrator password for testing:  f@keP@a$$w0rD --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier la version HTML et les URLs de Définition de Type de Document (DTD) pour connaître les versions applicables :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
* &amp;quot;strict.dtd&amp;quot; -- default strict DTD &lt;br /&gt;
* &amp;quot;loose.dtd&amp;quot; -- loose DTD &lt;br /&gt;
* &amp;quot;frameset.dtd&amp;quot; -- DTD for frameset documents &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;author&amp;quot; content=&amp;quot;Andrew Muller&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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». &lt;br /&gt;
&lt;br /&gt;
Ainsi la balise :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;expires&amp;quot; content=&amp;quot;Fri, 21 Dec 2012 12:34:56 GMT&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
générera dans l’entête HTTP de réponse : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
expires: Fri, 21 Dec 2012 12:34:56 GMT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et la balise suivante : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;cache-control&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
génèrera dans l’entête HTTP : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cache-control: no-cache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Une balise META usuelle, mais non conforme aux lignes directrices sur l'accessibilité des contenus Web(WCAG), est &amp;quot;refresh&amp;quot; : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;refresh&amp;quot; content=&amp;quot;15; URL=https://www.owasp.org/index.html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;keywords&amp;quot; lang=&amp;quot;en-us&amp;quot; content=&amp;quot;OWASP, security, sunshine, lollipops&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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. &lt;br /&gt;
La balise suivante informe les robots de ne pas indexer et de ne pas suivre les liens sur les pages HTML contenant cette balise :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;robots&amp;quot; content=&amp;quot;none&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Non applicable. &lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Wget &lt;br /&gt;
* Fonction du navigateur &amp;quot;voir le code source&amp;quot;&lt;br /&gt;
* Eyeballs &lt;br /&gt;
* cURL&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
&lt;br /&gt;
[1] http://www.w3.org/PICS/  PICS, plate-forme de sélection du contenu Internet&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.w3.org/2009/09/powder-pr.html.fr POWDER, protocole de description des ressources du Web&lt;br /&gt;
&lt;br /&gt;
'''Livres Blancs''' &lt;br /&gt;
[1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (pour petits appareils)&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://www.w3.org/TR/html5/ HTML version 5&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.6_Test_des_Methodes_HTTP_(OTG-CONFIG-006)&amp;diff=202185</id>
		<title>4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.6_Test_des_Methodes_HTTP_(OTG-CONFIG-006)&amp;diff=202185"/>
				<updated>2015-10-16T17:25:21Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
HTTP propose plusieurs méthodes pour réaliser des actions sur le serveur web. Plusieurs de ces méthodes sont prévues pour aider le développeur à déployer et à tester les applications HTTP. Si le serveur est mal configuré, ces méthodes HTTP peuvent être utilisées dans des buts malveillants. On examinera aussi le Cross Site Tracing (XST), une sorte d’attaque de type Cross Site Scripting (XSS) qui utilise la méthode HTTP TRACE.&amp;lt;br&amp;gt;&lt;br /&gt;
Bien que GET et POST soient, de loin, les méthodes les plus employées pour accéder aux informations des serveurs web, HTTP en permet plusieurs autres moins connues. La version HTTP/1.1, qui est le standard actuel, est décrite par le RFC 2616 (ou, les RFC 723x depuis 2014). &lt;br /&gt;
En particulier, le RFC 7231 décrit les huit méthodes suivantes : &lt;br /&gt;
* GET&lt;br /&gt;
* HEAD &lt;br /&gt;
* POST &lt;br /&gt;
* PUT &lt;br /&gt;
* DELETE &lt;br /&gt;
* CONNECT&lt;br /&gt;
* OPTIONS &lt;br /&gt;
* TRACE&lt;br /&gt;
 &lt;br /&gt;
Certaines de ces méthodes présentent des risques pour les applications web car elles permettent à un attaquant de modifier des fichiers stockés sur le serveur web et, dans certains scénarios, de voler des justificatifs d’accès d’utilisateurs légitimes. En particulier, les méthodes, qui devraient être désactivées, sont les suivantes : &lt;br /&gt;
* PUT: Cette méthode permet à un client de charger un nouveau fichier sur le serveur web. Un attaquant peut l’exploiter pour charger du contenu malveillant (ex. un fichier .asp qui exécute une commande en lançant cmd.exe) ou, simplement en utilisant le serveur de la victime comme un dépôt de fichiers.&lt;br /&gt;
* DELETE: Cette méthode permet à un client de supprimer un fichier sur le serveur web. Un attaquant peut l’exploiter comme moyen simple et direct pour défigurer un site web ou concevoir une attaque de Déni de Service-DoS.&lt;br /&gt;
* CONNECT: Cette méthode peut permettre à un client d’utiliser un serveur web comme proxy. &lt;br /&gt;
* TRACE: Cette méthode renvoie en écho au client toute chaîne qui a été envoyée au serveur et est utilisée principalement pour du débogage. Cette méthode, supposée à l’origine être inoffensive, peut être utilisée pour préparer une attaque de type “Cross Site Tracing”, attaque découverte par Jeremiah Grossman (voir le lien en bas de page).&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Si une application a besoin d’au moins une de ces méthodes, comme les services Web REST (qui peuvent nécessiter PUT ou DELETE), il est important de vérifier que l’utilisation qui en est faite est correctement limitée à des utilisateurs approuvés et effectuée dans un environnement sûr. &lt;br /&gt;
&lt;br /&gt;
=== Méthodes HTTP arbitraires ===&lt;br /&gt;
Arshan Dabirsiaghi (voir les liens) a découvert que beaucoup de frameworks d’applications web permettent d’utiliser des méthodes HTTP ciblées ou arbitraires pour contourner l’environnement de vérification de contrôle d’accès : &lt;br /&gt;
* Beaucoup de frameworks et de  langages gèrent la méthode &amp;quot;HEAD&amp;quot; comme une requête &amp;quot;GET&amp;quot;, bien que la réponse à la requête &amp;quot;HEAD&amp;quot; ne devrait pas contenir de corps de message. Ainsi, si on a mis en place une contrainte de sécurité sur les requêtes &amp;quot;GET&amp;quot; telle que, seuls les utilisateurs authentifiés peuvent accéder à une servlet ou à une ressource particulière, cette contrainte sera contournée dans l’appel à la méthode &amp;quot;HEAD&amp;quot;. Cela permet, à l’aveugle et sans autorisation, d’accéder à toute requête &amp;quot;GET&amp;quot; privilégiée.&lt;br /&gt;
* Certains frameworks autorisent que des méthodes HTTP arbitraires telles que &amp;quot;JEFF&amp;quot; ou &amp;quot;CATS&amp;quot; soient utilisées sans aucune limitation. Celles-ci sont traitées comme des méthodes &amp;quot;GET&amp;quot; et se trouvent, dans certains langages et frameworks, ne pas être soumises aux vérifications d’accès fondées sur les rôles des méthodes standard, permettant, une fois encore, un accès, à l’aveugle et sans autorisation, à des ressources &amp;quot;GET&amp;quot; privilégiées. &lt;br /&gt;
Dans bien des cas, le code qui vérifiera explicitement que la méthode est un &amp;quot;GET&amp;quot; ou un &amp;quot;POST&amp;quot;, sera sûr.&lt;br /&gt;
&lt;br /&gt;
== Comment Tester ==&lt;br /&gt;
'''Découvrir les Méthodes Supportées'''&amp;lt;br&amp;gt;&lt;br /&gt;
Pour réaliser ce test, le testeur devra savoir quelles méthodes HTTP sont supportées par le serveur à évaluer. La méthode HTTP &amp;quot;OPTIONS&amp;quot; donne au testeur un moyen direct et efficace pour le faire. Le RFC 2616 indique ainsi que «La méthode &amp;quot;OPTIONS&amp;quot;  est une demande d’information sur les options de communications supportées dans la séquence des requêtes/réponses déterminées par l’URI de la requête.»&lt;br /&gt;
La méthode de test est très simple et une commande netcat (ou telnet) suffit : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nc www.victim.com 80 &lt;br /&gt;
OPTIONS / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Server: Microsoft-IIS/5.0&lt;br /&gt;
Date: Tue, 31 Oct 2006 08:00:29 GMT&lt;br /&gt;
Connection: close&lt;br /&gt;
Allow: GET, HEAD, POST, TRACE, OPTIONS&lt;br /&gt;
Content-Length: 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir dans cet exemple, OPTIONS renvoie la liste des méthodes supportées par le serveur web, et on remarque ici que la méthode &amp;quot;TRACE&amp;quot; est activée. Le danger, que cela représente, est illustré dans la section suivante.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Test de vulnérabilité XST'''&amp;lt;br&amp;gt;&lt;br /&gt;
Note: pour bien comprendre la logique et le but de l’attaque XST, il faut être familier des attaques de type Cross Site Scripting (XSS). &lt;br /&gt;
La méthode &amp;quot;TRACE&amp;quot;, apparemment inoffensive, peut être utilisée dans certains scénarios pour voler des justificatifs d’accès d’utilisateurs légitimes. Cette technique d’attaque a été découverte par Jeremiah Grossman en 2003, dans une tentative de contournement de la balise  HTTPOnly que Microsoft a introduite dans Internet Explorer 6 SP1 pour empêcher Javascript d’accéder aux cookies. En effet, l’un des motifs récurrents d’attaques de type XSS (Cross Site Scripting) concerne l’accès à l’objet document.cookie qui est renvoyé à un serveur web contrôlé par l’attaquant pour qu’il puisse détourner la session de la victime. Marquer un cookie avec l’attribut HTTPOnly interdit à Javascript d’y accéder, le protégeant ainsi d’un envoi à une partie tierce. Malgré cela, même dans ce cas, la méthode &amp;quot;TRACE&amp;quot;  peut être utilisée pour contourner cette protection et accéder aux cookies.&lt;br /&gt;
Comme indiqué précédemment, TRACE renvoie simplement chaque chaîne de caractères envoyée au serveur web. Pour vérifier sa présence sur le serveur (ou confirmer les résultats de la requête OPTIONS précédente), le testeur peut effectuer la commande suivante :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nc www.victim.com 80&lt;br /&gt;
TRACE / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Server: Microsoft-IIS/5.0&lt;br /&gt;
Date: Tue, 31 Oct 2006 08:01:48 GMT&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: message/http&lt;br /&gt;
Content-Length: 39&lt;br /&gt;
&lt;br /&gt;
TRACE / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le corps de la réponse est une copie exacte de notre requête initiale, ce qui signifie que la cible accepte la méthode &amp;quot;TRACE&amp;quot;. Alors, où se cache le danger ? Si le testeur indique au navigateur d’envoyer une requête TRACE au serveur web et si le navigateur a un cookie pour ce domaine, ce cookie sera automatiquement inclus dans les entêtes de requêtes et donc renvoyé en écho dans la réponse. &lt;br /&gt;
A partir de là, la chaîne représentant le cookie sera accessible par JavaScript et, il sera finalement possible de l’envoyer à une partie tierce, même s’il a l’attribut HTTPOnly. &lt;br /&gt;
&lt;br /&gt;
Il y a différents moyens pour qu’un navigateur envoie une requête &amp;quot;TRACE&amp;quot;, en particulier, il y a le contrôle ActiveX XMLHttpRequest dans Internet Explorer et  XMLDOM dans Mozilla. Quoiqu’il en soit, pour des raisons de sécurité, le navigateur ne peut initier une connexion que sur le domaine où se trouve le script malveillant. C’est un facteur qui en limite les possibilités car l’attaquant devra combiner la méthode &amp;quot;TRACE&amp;quot;  avec une autre vulnérabilité pour réaliser cette attaque.&lt;br /&gt;
Un attaquant a deux moyens de réussir une attaque de type Cross Site Tracing : &lt;br /&gt;
* Profiter d’une autre vulnérabilité du serveur : l’attaquant injecte un code JavaScript malveillant, qui contient une requête &amp;quot;TRACE&amp;quot;, dans l’application vulnérable comme pour une attaque standard de type XSS-Cross Site Scripting&lt;br /&gt;
* Profiter d’une autre vulnérabilité du client : l’attaquant crée un site web malveillant qui contient le code JavaScript hostile et exploite une vulnérabilité inter-domaine du navigateur de la victime, de façon à ce que le code JavaScript réalise avec succès une connexion au site qui supporte la méthode &amp;quot;TRACE&amp;quot;  et qui a généré le cookie que l’attaquant convoite. &lt;br /&gt;
&lt;br /&gt;
Vous pourrez trouver plus d’informations, ainsi que des exemples de code, dans le document original de Jeremiah Grossman.&lt;br /&gt;
&lt;br /&gt;
Note du traducteur : Depuis la divulgation de cette attaque, les navigateurs récents stoppent les requêtes &amp;quot;TRACE&amp;quot;  effectuées via Javascript.&lt;br /&gt;
&lt;br /&gt;
=== Test des Méthodes HTTP arbitraires ===&lt;br /&gt;
Chercher une page, avec une contrainte de sécurité qui devrait normalement conduire à une redirection &amp;quot;302&amp;quot; vers une page de connexion, ou à une connexion directe. L’URL de test de l’exemple fonctionne ainsi, comme beaucoup d’applications web. &lt;br /&gt;
Néanmoins, si le testeur reçoit une réponse &amp;quot;200&amp;quot; qui n’est pas une page de connexion, il est possible de contourner l’authentification et donc les autorisations d’accès :&lt;br /&gt;
$ nc www.example.com 80&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
JEFF / HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Mon, 18 Aug 2008 22:38:40 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Set-Cookie: PHPSESSID=K53QW...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si le framework, le pare-feu ou l’application ne prend pas en compte pas la méthode  &amp;quot;JEFF&amp;quot;, il devrait envoyer une page d’erreur (ou, mieux une page d’erreur indiquant &amp;quot;405 Not Allowed&amp;quot; ou &amp;quot;501 Not implemented&amp;quot;). S’il effectue la requête, il est vulnérable à ce problème.&lt;br /&gt;
Si le testeur pense que le système est vulnérable à ce problème, il doit tenter une attaque de type CSRF (Falsification de requête intersites) pour l’exploiter au maximum : &lt;br /&gt;
* FOOBAR /admin/createUser.php?member=myAdmin &lt;br /&gt;
* JEFF /admin/changePw.php?member=myAdmin&amp;amp;passwd=foo123&amp;amp;confirm=foo123 &lt;br /&gt;
* CATS /admin/groupEdit.php?group=Admins&amp;amp;member=myAdmin&amp;amp;action=add &lt;br /&gt;
&lt;br /&gt;
Avec de la chance, en utilisant les trois commandes ci-dessus, -modifiées pour s’adapter à l’application et aux besoins du test- un nouvel utilisateur sera créé avec un mot de passe choisi et des droits administrateur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test de Contournement du contrôle d’accès de la requête HEAD ===&lt;br /&gt;
Chercher une page, avec une contrainte de sécurité qui devrait normalement conduire à une redirection &amp;quot;302&amp;quot; vers une page de connexion, ou à une connexion directe. L’URL de test de l’exemple fonctionne ainsi, comme beaucoup d’applications web. &lt;br /&gt;
Néanmoins, si le testeur reçoit une réponse &amp;quot;200&amp;quot; qui n’est pas une page de connexion, il est possible de contourner l’authentification et donc les autorisations d’accès :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nc www.example.com 80&lt;br /&gt;
HEAD /admin HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Mon, 18 Aug 2008 22:44:11 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Set-Cookie: PHPSESSID=pKi...; path=/; HttpOnly&lt;br /&gt;
Expires: Thu, 19 Nov 1981 08:52:00 GMT&lt;br /&gt;
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0&lt;br /&gt;
Pragma: no-cache&lt;br /&gt;
Set-Cookie: adminOnlyCookie1=...; expires=Tue, 18-Aug-2009 22:44:31 GMT; domain=www.example.com&lt;br /&gt;
Set-Cookie: adminOnlyCookie2=...; expires=Mon, 18-Aug-2008 22:54:31 GMT; domain=www.example.com&lt;br /&gt;
Set-Cookie: adminOnlyCookie3=...; expires=Sun, 19-Aug-2007 22:44:30 GMT; domain=www.example.com&lt;br /&gt;
Content-Language: EN&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: text/html; charset=ISO-8859-1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si le testeur reçoit un &amp;quot;405 Method not allowed&amp;quot; ou un &amp;quot;501 Method Unimplemented&amp;quot;, la cible (application / framework / langage / système / parefeu) fonctionne correctement. &lt;br /&gt;
S’il reçoit un &amp;quot;200&amp;quot; en retour, et que la réponse ne contient pas de corps de message, c’est que l’application a accepté la requête sans effectuer de contrôle d’authentification et d’autorisation ce qui garantit de pouvoir effectuer des tests complémentaires. &lt;br /&gt;
&lt;br /&gt;
Si le testeur pense que le système est vulnérable à ce problème, il doit tenter une attaque de type CSRF (falsification de requête intersites) pour l’exploiter au maximum : &lt;br /&gt;
* FOOBAR /admin/createUser.php?member=myAdmin &lt;br /&gt;
* JEFF /admin/changePw.php?member=myAdmin&amp;amp;passwd=foo123&amp;amp;confirm=foo123 &lt;br /&gt;
* CATS /admin/groupEdit.php?group=Admins&amp;amp;member=myAdmin&amp;amp;action=add &lt;br /&gt;
&lt;br /&gt;
Avec de la chance, en utilisant les trois commandes ci-dessus, -modifiées pour s’adapter à l’application et aux besoins du test- un nouvel utilisateur sera créé avec un mot de passe choisi et des droits administrateur, tout cela avec la soumission de requêtes à l’aveugle.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
* NetCat - http://nc110.sourceforge.net &lt;br /&gt;
* cURL - http://curl.haxx.se/ &lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
'''Livres Blancs'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Le RFC 2616: &amp;quot;Hypertext Transfer Protocol -- HTTP/1.1&amp;quot; &lt;br /&gt;
* Les RFC 2109 et RFC 2965 &amp;quot;HTTP State Management Mechanism&amp;quot; &lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Cross Site Tracing (XST)&amp;quot; - http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf &lt;br /&gt;
* Amit Klein: &amp;quot;une variante d’attaque XS(T) qui peut permettre, dans certains cas, de se passer de TRACE&amp;quot; - http://www.securityfocus.com/archive/107/308433 &lt;br /&gt;
* Arshan Dabirsiaghi: &amp;quot;Contourner VBAAC  avec HTTP Verb Tampering&amp;quot; - http://static.swpag.info/download/Bypassing_VBAAC_with_HTTP_Verb_Tampering.pdf&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_r%C3%A9f%C3%A9renc%C3%A9s_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202086</id>
		<title>4.3.4 Revue des fichiers obsolètes, de sauvegarde, non référencés pour recherche d'informations sensibles (OTG-CONFIG-004)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_r%C3%A9f%C3%A9renc%C3%A9s_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202086"/>
				<updated>2015-10-13T11:22:00Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Created page with &amp;quot;{{Template:OWASP Testing Guide v4}}  == Résumé ==   Bien que la plupart des fichiers d’un serveur Web soient gérés directement par le serveur lui-même, il n’est pas i...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bien que la plupart des fichiers d’un serveur Web soient gérés directement par le serveur lui-même, il n’est pas inhabituel d’y trouver des fichiers non référencés,ou oubliés, qui permettent d’obtenir des informations sensibles sur l’infrastructure ou sur des justificatifs d’accès. &lt;br /&gt;
&lt;br /&gt;
La plupart des scénarios reposent sur la présence d'anciennes versions de fichiers modifiés et renommés, sur des fichiers d'inclusion, qui ont été chargés selon les règles du langage utilisé, et qui peuvent être téléchargés en tant que fichiers sources, ou même des sauvegardes automatiques, ou manuelles, telles que des fichiers d'archives compressées. Des fichiers de sauvegarde peuvent aussi être générés automatiquement par le système de fichiers sur lequel l’application est hébergée, une fonction habituellement appelée &amp;quot;copie instantanée&amp;quot; ou &amp;quot;snapshot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tous ces fichiers peuvent permettre au testeur d’accéder au fonctionnement interne, aux portes dérobées, aux interfaces d’administration, ou même aux justificatifs d'accès privilégiés permettant de se connecter à l'interface d'administration et au serveur de bases de données. &lt;br /&gt;
&lt;br /&gt;
Les fichiers n’ayant aucun lien avec l’application et, ayant été générés par l’édition de fichiers d’application, ou issus de copies de sauvegarde instantanées, ou les fichiers obsolètes ou, non référencés laissés dans l’arborescence du serveur Web, sont une source importante de vulnérabilités.&lt;br /&gt;
&lt;br /&gt;
Editer des fichiers sur le serveur de production ou, y faire d’autres actions d'administration, peut y laisser malencontreusement des copies de sauvegarde qu'elles soient générées, automatiquement par l’éditeur lors d'une édition de fichiers, ou directement par l’administrateur lorsqu'il crée un fichier zippé d’un ensemble de fichiers pour faire une sauvegarde. &lt;br /&gt;
&lt;br /&gt;
Il est facile d’oublier de tels fichiers et cela peut présenter de sérieuses menaces de sécurité pour l’application. Cela arrive parce que les copies de sauvegarde peuvent être générées avec des extensions de sauvegarde différentes des fichiers originaux. Une archive .tar, .zip ou .gz que nous générons (et oublions) a, bien sûr, une extension différente, et il arrive la même chose avec les copies générées par beaucoup éditeurs (par exemple, emacs génère une copie de sauvegarde nommée ''file~'' lorsqu’on édite ''file''). Une copie manuelle peut aboutir au même résultat (comme copier ''file'' en ''file.old''). Le système de fichier sous-jacent peut faire des «copies instantanées» de vos applications, à différents moments, sans que vous le sachiez, et ils peuvent être accessibles par le Web, ce qui présente une menace de type «fichiers de sauvegarde», différente mais similaire, pour votre application.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ces activités peuvent générer des fichiers non nécessaires à l’application qui peuvent être gérés différemment des fichiers originaux par le serveur web. Par exemple, si nous faisons une copie du fichier ''login.asp'' vers ''login.asp.old'', nous permettons aux utilisateurs de télécharger le code source de ''login.asp''. Ceci parce ''login.asp.old'' sera habituellement ouvert comme un fichier texte ou brut plutôt qu’exécuté à cause de son extension. En d’autres termes, l’accès au fichier ''login.asp'' entraîne l’exécution sur le serveur du code ''login.asp'' tandis que l’accès au fichier ''login.asp.old'' conduit à renvoyer simplement à l'utilisateur le contenu du fichier ''login.asp.old'' (qui est, là aussi, le code du serveur) et à l'afficher sur le navigateur de l’utilisateur. Cela présente des risques de sécurité puisque des informations de sécurité peuvent ainsi être révélées.&lt;br /&gt;
&lt;br /&gt;
Généralement, exposer le code du serveur n’est pas une bonne idée. Non seulement, vous exposez inutilement la logique de l’entreprise mais vous pouvez divulguer sans le savoir des informations relatives à l’application qui peuvent aider l’attaquant (chemin d’accès, structures des données, etc...). Ceci sans mentionner le fait qu’on trouve beaucoup trop de scripts avec des comptes et mots de passe en clair (ce qui est une pratique imprudente et dangereuse).&lt;br /&gt;
&lt;br /&gt;
D’autres causes de fichiers non référencés sont dues aux choix d’architecture et de configuration quand ceux-ci permettent au serveur web d’accéder à toutes sortes de fichiers relatifs à l’application tels que des fichiers de données, de configuration, de logs stockés dans des répertoires du système de fichier. &lt;br /&gt;
&lt;br /&gt;
Ces fichiers n’ont normalement rien à faire dans l’espace du système de fichiers accessible par le web puisqu’ils ne devraient être accessibles qu’au niveau de l’application, par l’application elle-même (et non par un utilisateur occasionnel qui navigue autour).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menaces ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegardes et, les fichiers anciens ou non référencés, représentent diverses menaces à la sécurité d’une application web :&lt;br /&gt;
&lt;br /&gt;
* Les fichiers non référencés peuvent dévoiler des informations sensibles qu peuvent faciliter une attaque ciblée d’une application ; par exemple cela comprend les bases de données de justificatifs d’accès, les fichiers de configuration contenant des références à des contenus cachés, chemins d’accès complets, etc...&lt;br /&gt;
&lt;br /&gt;
* Des pages non référencées peuvent contenir de puissantes fonctionnalités pouvant être utilisées pour attaquer l’application ; par exemple une page d’administration non publiée mais qui peut être accédée par n’importe quel utilisateur qui sait où la trouver.&lt;br /&gt;
&lt;br /&gt;
* D’anciens fichiers ou des fichiers de sauvegarde peuvent contenir des vulnérabilités qui ont été corrigées dans des versions plus récentes ; par exemple ''viewdoc.old.jsp'' peut contenir une vulnérabilité de type «traversée de répertoires» ou &amp;quot;Path Traversal&amp;quot; qui a été corrigée dans ''viewdoc.jsp'' mais peut toujours être exploitée par celui qui trouve cette vieille version. &lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent dévoiler le code source des pages prévues pour être exécutées sur le serveur ; par exemple, ouvrir ''viewdoc.bak'' peut renvoyer le code source de ''viewdoc.jsp'', qui peut être analysé pour en rechercher les vulnérabilités qui seraient difficiles à trouver en faisant des requêtes à l’aveugle vers la page exécutable. Alors que cette menace s’applique évidemment au langages de script, tels que Perl, PHP, ASP, shell scripts, JSP, etc., cela ne se limite pas à eux seuls, comme nous le verrons dans l’exemple du prochain paragraphe.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent contenir des copies de tous les fichiers sous la racine (ou même en dehors) du site web. Cela permet à l’attaquant de rapidement énumérer l’application entière, dont les pages non référérencées, le code source, les fichiers inclus, etc... par exemple, si vous avez oublié un fichier nommé ''myservlets.jar.old'' qui contient (une copie de sauvegarde de) vos classes de servlet implémentées, vous exposez beaucoup d’informations sensibles pouvant faire l’objet de décompilation ou de rétro-ingénierie. &lt;br /&gt;
&lt;br /&gt;
* Dans certains cas, éditer ou copier un fichier ne modifie pas l’extension de fichier mais modifie le nom du fichier. Cela arrive, par exemple dans les environnements Windows, où les opérations de copie de fichier génèrent des fichiers suffixés avec «-Copie» ou des versions locales de cette chaîne. Puisque l’extension de fichier reste inchangée, ce n’est pas le cas où le fichier exécutable est renvoyé comme texte en clair par le serveur web, donc pas un cas de divulgation de code source. Malgré tout, ces fichiers aussi sont dangereux car il y a une possibilité qu’ils contiennent une logique incorrecte ou obsolète et peuvent, s'ils sont accédés, déclencher des erreurs d’application, qui donnent de précieuses informations à l’attaquant, si le message d’erreur s’affiche.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers journaux peuvent contenir des informations sensibles à propos des usages de l’application par les utilisateurs, par exemple les données sensibles passées en paramètre aux URL, les ID de session, les URL visités (qui peuvent divulguer d’autres contenus non référencés), etc... D’autres fichiers journaux (ex. les journaux ftp) peuvent contenir des informations sensibles à propos de la maintenance de l’application par les administrateurs système.&lt;br /&gt;
&lt;br /&gt;
* Les copies instantanées de système de fichiers peuvent contenir des copies de code ayant des vulnérabilités corrigées dans les versions plus récentes. Par exemple, ''/.snapshot/monthly.1/view.php'' peut contenir une vulnérabilité de type « traversée de répertoire » qui a été corrigée dans ''/view.php'' mais qui peut toujours être exploitée par celui qui trouve la vieille version du fichier. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester==&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
Le test des fichiers non référencés utilise à la fois des techniques manuelles et automatiques et typiquement combine les suivantes : &lt;br /&gt;
&lt;br /&gt;
==== Déductions du schéma de nommage du contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Dénombrer toutes les pages et les fonctionnalités de l’application. Cela peut être fait manuellement avec un navigateur ou en utilisant un outil d’exploration (« spidering ») d’application. La plupart des applications utilisent un schéma de nommage identifiable, et organisent les ressources en pages et répertoires en utilisant des mots décrivant leurs fonctions. A partir du schéma de nommage utilisé pour le contenu publié, il est souvent possible d’en déduire le nom et l’emplacement des fichiers non référencés. Par exemple, si on trouve une page ''viewuser.asp'', alors il faut chercher ''edituser.asp'',''adduser.asp'' et ''deleteuser.asp''. Si on trouve un répertoire ''/app/user'', il faut aussi chercher ''/app/admin'' et ''/app/manager''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Autres indices dans le contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Beaucoup d’applications web laissent des indices dans leur contenu publié qui peuvent conduire à découvrir des fonctionnalités ou des pages cachées. Ces indices se retrouvent souvent dans le code source HTML et dans les fichiers JavaScript. Le code source de tous les contenus publiés devrait être revu manuellement pour identifier les indices laissés concernant les fonctionnalités et les pages.&lt;br /&gt;
&lt;br /&gt;
Par exemple : &lt;br /&gt;
&lt;br /&gt;
Les commentaires et les sections commentées du code source par les programmeurs peuvent faire référence à du contenu caché : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;A HREF=&amp;quot;uploadfile.jsp&amp;quot;&amp;gt;Upload a document to the server&amp;lt;/A&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Link removed while bugs in uploadfile.jsp are fixed          --&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScript peut contenir des liens sur des pages qui sont uniquement émises dans l’interface graphique de l’utilisateur dans certaines circonstances : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var adminUser=false;&lt;br /&gt;
:&lt;br /&gt;
if (adminUser) menu.add (new menuItem (&amp;quot;Maintain users&amp;quot;, &amp;quot;/admin/useradmin.jsp&amp;quot;)); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les pages HTML peuvent contenir des FORMs qui ont été cachées en désactivant l’élément SUBMIT : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FORM action=&amp;quot;forgotPassword.jsp&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;INPUT type=&amp;quot;hidden&amp;quot; name=&amp;quot;userID&amp;quot; value=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;lt;INPUT type=&amp;quot;submit&amp;quot; value=&amp;quot;Forgot Password&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre source d’indices concernant les répertoires non référencés est le fichier ''/robots.txt'', fichier utilisé pour donner des instructions aux robots d’indexation du Web : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User-agent: *&lt;br /&gt;
Disallow: /Admin&lt;br /&gt;
Disallow: /uploads&lt;br /&gt;
Disallow: /backup&lt;br /&gt;
Disallow: /~jbloggs&lt;br /&gt;
Disallow: /include &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Recherche à l'aveugle ====&lt;br /&gt;
&lt;br /&gt;
Dans sa forme la plus simple, il s'agit de lancer une recherche de noms de fichiers usuels via un moteur de requêtes dans le but de deviner quels sont les fichiers et les répertoires existant sur le serveur. Ce script qui utilise une commande &amp;quot;netcat&amp;quot; lira une liste de mots à partir de stdin et réalisera une attaque élémentaire par conjecture ou &amp;quot;guessing attack&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
server=www.targetapp.com&lt;br /&gt;
port=80&lt;br /&gt;
&lt;br /&gt;
while read url&lt;br /&gt;
do&lt;br /&gt;
echo -ne &amp;quot;$url\t&amp;quot;&lt;br /&gt;
echo -e &amp;quot;GET /$url HTTP/1.0\nHost: $server\n&amp;quot; | netcat $server $port | head -1&lt;br /&gt;
done | tee outputfile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suivant la configuration du serveur, on pourra remplacer la commande GET par une commande HEAD pour avoir des résultats plus rapides. On pourra ensuite faire une commande grep sur le fichier de sortie pour y rechercher des codes de réponse “intéressants”. Le code de réponse &amp;quot;200&amp;quot; (OK) indique habituellement qu'une ressource valide a été trouvée (a priori, un serveur ne renvoit pas une page “not found” avec un code &amp;quot;200&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Rechercher aussi les codes &amp;quot;301&amp;quot; (Déplacé), &amp;quot;302&amp;quot; (Trouvé), &amp;quot;401&amp;quot; (Non autorisé), &amp;quot;403&amp;quot; (Interdit) and 500 (Erreur Interne), qui peuvent aussi référencer des ressources et des répertoires qui méritent plus d'investigation. &lt;br /&gt;
&lt;br /&gt;
L'attaque élémentaire par conjecture doit s'effectuer sur le répertoire racine du serveur, le &amp;quot;webroot&amp;quot;, et aussi sur tous les répertoires identifiés par d'autres méthodes d'énumeration. Des attaques par conjecture, plus avancées et efficaces, peuvent être réalisées comme ceci: &lt;br /&gt;
&lt;br /&gt;
* Identifier les extensions de fichiers utilisées dans les espaces connus de l'application (ex. jsp, aspx, html), et prendre une liste de mots de base ajoutés à ces extensions ou prendre une plus longue liste des extensions communes si les ressources le permettent). &lt;br /&gt;
&lt;br /&gt;
* Pour chaque fichier identifié par d'autres techniques d'énumeration, créer une liste de mots personnalisés dérivés du nom de fichier. &lt;br /&gt;
Prendre une liste des extensions de fichier usuels (incluant les ~, bak, txt, src, dev, old, inc, orig, copy, tmp, etc.) et utiliser chaque extension avant, après, et à la place de l'extension actuelle du fichier.&lt;br /&gt;
&lt;br /&gt;
Note: Les opérations de copie de fichiers Windows génèrent des noms de fichiers postfixés par “-Copie“ ou par des versions localisées de cette chaîne, mais ne changent pas l'extension du fichier. Bien que les fichiers “-Copie“ ne divulguent pas habituellement le source code quand on y accède, ils peuvent néanmoins divulguer des informations sensibles dans le cas où ils génèrent des erreurs quand on y accède.&lt;br /&gt;
&lt;br /&gt;
==== Informations obtenues grâce aux vulnérabilités et aux mauvaises configurations du serveur ====&lt;br /&gt;
&lt;br /&gt;
Le cas le plus flagrant où une mauvaise configuration du serveur peut divulguer des pages non référencées est l'énumération des répertoires. Rechercher dans tous les répertoires énumérés pour identifier ceux qui listent des répertoires. &lt;br /&gt;
&lt;br /&gt;
On trouve de nombreuses vulnérabilités sur des serveurs Web personnels qui permettent aux attaquants de lister du contenu non référencé, comme par exemple : &lt;br /&gt;
&lt;br /&gt;
* Vulnérabilité ?M=D de listage des répertoires sur Apache.  &lt;br /&gt;
* Nombreuses vulnérabilités de divulgations de scripts sources sur IIS. &lt;br /&gt;
* Vulnérabilités de listage de répertoires sur WebDAV IIS. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Utilisation de l'information accessible au public ====&lt;br /&gt;
&lt;br /&gt;
Les pages et les fonctionnalités, des applications web sur Internet, qui ne sont pas référencées par l'application elle-même peuvent être référencées par d'autres sources du domaine public. Il existe plusieurs sources de ces références : &lt;br /&gt;
&lt;br /&gt;
* Les pages habituellement référencées peuvent toujours apparaître dans les archives des moteurs de recherche Internet. Par exemple, ''1998results.asp'' peut ne plus être lié à un site web d'entreprise, mais cependant rester sur le serveur et dans les bases de données des moteurs de recherche. Ce vieux script peut contenir des vulnérabilités qui peuvent permettre de compromettre le site entier. L'opérateur de recherche Google ''site:'' peut être utilisé pour faire une recherche sur un seul domaine choisi, comme dans : ''site:www.example.com''. Utiliser les moteurs de recherche de cette façon a permis un large éventail de techniques que vous pourrez trouver utiles et qui sont décrites dans la section ''Google Hacking'' de ce Guide. Lisez-le pour affûter vos compétences de test via Google. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ATTEntion : section Google Hacking non retrouvée --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegarde ne sont probablement pas référencés par d'autres fichiers et ainsi ne doivent pas avoir été indexés par Google mais s'ils se trouvent dans des répertoires accessibles par votre navigateur,le moteur de recherche peut en avoir connaissance.&lt;br /&gt;
&lt;br /&gt;
* De plus, Google et Yahoo conservent des versions en cache des pages trouvées par leurs robots. Même si ''1998results.asp'' a été supprimé du serveur cible, une version de ses résultats peut toujours être stockée par ces moteurs de recherche. Ces versions en cache peuvent contenir des références ou, des indices sur un autre contenu additionnel caché, qui existe toujours sur le serveur. &lt;br /&gt;
&lt;br /&gt;
* Du contenu, non référencé par une application cible, peut être lié à des sites web d'un tiers. Par exemple, une application qui gère les paiements en ligne pour le compte d'un site marchand peut contenir une diversité de fonctionnalités sur mesure qui ne doivent, normallement, être retrouvées qu'en suivant les liens des sites web de leurs clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Contournement du filtrage des noms de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Comme les filtres de liste noire sont basés sur des expressions régulières, on peut parfois profiter de fonctionnalités d'expansions opaques de noms de fichiers qui fonctionnent d'une façon que le éveloppeur n'imagine pas.&lt;br /&gt;
&lt;br /&gt;
Le testeur peut parfois exploiter la différence dans la façon dont les noms de fichiers sont analysés par l'application, le serveur web, et le système d'exploitation sous-jacent et ses conventions de nommage de fichiers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemple: Expansion des noms de fichiers sous Windows 8.3 &lt;br /&gt;
&amp;quot;c:\program files&amp;quot; devient &amp;quot;C:\PROGRA~1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
– Supprime les caractères incompatibles&lt;br /&gt;
– Convertit les espaces en caractère souligné bas &amp;quot;_&amp;quot;&lt;br /&gt;
- Prend les six premiers caractères du nom &lt;br /&gt;
– Ajoute “~&amp;lt;chiffre&amp;gt;” pour différencier les fichiers dont les noms ont les mêmes six premiers caractères &lt;br /&gt;
- Cette convention change après les 3 premières collisions de noms&lt;br /&gt;
– Tronque les extensions de fichiers à trois caractères&lt;br /&gt;
- Met tous les caractères en lettres majuscules &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Réaliser un test en boite grise sur les vieux fichiers et les fichiers de sauvegarde nécessite l'examen des fichiers contenus dans les répertoires appartenant à l'ensemble des répertoires Web servis par le(s) serveur(s) internet de l'infrastructure de l'application. Théoriquement, l'examen devrait être réalisé manuellement pour être exhaustif. &lt;br /&gt;
&lt;br /&gt;
Quoiqu'il en soit, comme la plupart du temps les copies ou les sauvegardes de fichiers utilisent les mêmes conventions de nommage, la recherche peut être effectuée facilement par script. Par exemple, les éditeurs nomment les copies de sauvegardes avec une extension reconnaissable et les humains tendent à les nommer en .old ou une autre extension similaire prédictible.&lt;br /&gt;
 &lt;br /&gt;
Uune bonne stratégie consiste à planifier une tâche de fond périodique à la recherche de fichiers avec des extensions qui les identifient comme de probables copies ou des sauvegardes de fichiers et à faire aussi des vérifications manuelles sur des périodes plus longues.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Les outils d'évaluation de vulnérabilités tendent à inclure des vérifications pour repérer les répertoires web avec des noms standard (tels que “admin”, “test”, “backup”, etc.), et à recenser tout répertoire web qui en autorise l'indexation. Si vous ne pouvez pas lister les répertoires, vous devriez essayer de vérifier les extensions probables des fichiers de sauvegarde. Regarder par exemple Nessus (http://www.nessus.org), Nikto2(http://www.cirt.net/code/nikto.shtml) ou les nouveaux dérivés Wikto (http://www.sensepost.com/research/wikto/), qui supportent les stratégies de base du Google Hacking.&lt;br /&gt;
&lt;br /&gt;
* Robots d'exploration du Web &amp;quot;spider tools&amp;quot;: &lt;br /&gt;
** wget (http://www.gnu.org/software/wget/, http://www.interlog.com/~tcharron/wgetwin.html); &lt;br /&gt;
** Sam Spade (http://www.samspade.org); &lt;br /&gt;
** Le proxy Spike comprend une fonction d'exploration de site web (http://www.immunitysec.com/spikeproxy.html); &lt;br /&gt;
** Xenu (http://home.snafu.de/tilman/xenulink.html); &lt;br /&gt;
** curl (http://curl.haxx.se). &lt;br /&gt;
Certains de ces outils sont compris en standard dans les distributions Linux.&lt;br /&gt;
  &lt;br /&gt;
* Les utilitaires de développement Web ont généralement des outils pour identifier les liens cassés et les fichiers non référencés.&lt;br /&gt;
&lt;br /&gt;
== Remédiation ==&lt;br /&gt;
&lt;br /&gt;
Pour garantir une stratégie de protection efficace, les tests doivent être complétés par une politique de sécurité qui interdit clairement des pratiques dangereuses telles que :&lt;br /&gt;
&lt;br /&gt;
* Editer des fichiers directement sur le serveur web ou sur le système de fichiers de l'application. C'est vraiment une mauvaise habitude car il est prévisible que les éditeurs génèrent des fichiers de backup non souhaités. C'est étonnant de voir comme c'est fréquent, même dans les grandes organisations. Si vous avez absolument besoin d'éditer un fichier sur un serveur de production, assurez-vous de n'y laisser que ce qui est explicitement nécessaire, et considérez que vous le faites à vos propres risques.&lt;br /&gt;
  &lt;br /&gt;
* Vérifier soigneusement toute autre activité réalisée sur le système de fichiers exposé par le serveur Web, telles que les activités d'administration. Par exemple, si vous avez ponctuellement besoin de faire une &amp;quot;copie instantanée&amp;quot; de quelques répertoires (ce que vous devriez pas faire en production), vous pouvez être tenté au préalable d'en faire un fichier zippé. Faites attention de ne pas laisser l'archive derrière vous.&lt;br /&gt;
&lt;br /&gt;
* Une politique de gestion de configuration devrait permettre de ne pas laisser traîner des fichiers obsolètes ou non référencés.&lt;br /&gt;
&lt;br /&gt;
* Les applications devraient être concues pour ne pas créer (ou s'appuyer sur) des fichiers stockés sous l'arborescence de répertoires mis à disposition par le serveur Web. Les fichiers de données, de traces, de configuration, etc..., devraient être stockés dans des répertoires inaccessibles au serveur Web, pour contrer les possibilités de divulgation d'information (pour ne pas mentionner les modifications de données si les permissions sur les répertoires Web autorisent l'écriture).&lt;br /&gt;
&lt;br /&gt;
* Les &amp;quot;copies instantanées&amp;quot; ou &amp;quot;snapshot&amp;quot; de système de fichiers ne devraient pas être accessibles par le Web si l'emplacement du document est sur un système de fichiers utilisant cette technologie. &lt;br /&gt;
&lt;br /&gt;
Configurer votre serveur Web pour refuser l'accès à de tels répertoires, par exemple, sous Apache une directive &amp;lt;location&amp;gt;, comme indiqué ci-dessous, devrait être mise en place :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Location ~ &amp;quot;.snapshot&amp;quot;&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=202085</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=202085"/>
				<updated>2015-10-13T11:20:18Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management, Asset Security,&lt;br /&gt;
Security Engineering, Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP TEN 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP 10 2013 en Français]&amp;lt;br /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP Testing Guide v4» :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.4 Revue des fichiers obsolètes, de sauvegarde, non référencés pour recherche d'informations sensibles (OTG-CONFIG-004)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.5.8 Test de Questions-Reponses Faibles (OTG-AUTHN-008)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[OWASP Guide de Test v4-Annexe B-Conseils de Lecture]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_references_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202084</id>
		<title>4.3.4 Revue des fichiers obsolètes, de sauvegarde, non references pour recherche d'informations sensibles (OTG-CONFIG-004)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_obsol%C3%A8tes,_de_sauvegarde,_non_references_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202084"/>
				<updated>2015-10-13T11:18:51Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Created page with &amp;quot;{{Template:OWASP Testing Guide v4}}  == Résumé ==   Bien que la plupart des fichiers d’un serveur Web soient gérés directement par le serveur lui-même, il n’est pas i...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bien que la plupart des fichiers d’un serveur Web soient gérés directement par le serveur lui-même, il n’est pas inhabituel d’y trouver des fichiers non référencés,ou oubliés, qui permettent d’obtenir des informations sensibles sur l’infrastructure ou sur des justificatifs d’accès. &lt;br /&gt;
&lt;br /&gt;
La plupart des scénarios reposent sur la présence d'anciennes versions de fichiers modifiés et renommés, sur des fichiers d'inclusion, qui ont été chargés selon les règles du langage utilisé, et qui peuvent être téléchargés en tant que fichiers sources, ou même des sauvegardes automatiques, ou manuelles, telles que des fichiers d'archives compressées. Des fichiers de sauvegarde peuvent aussi être générés automatiquement par le système de fichiers sur lequel l’application est hébergée, une fonction habituellement appelée &amp;quot;copie instantanée&amp;quot; ou &amp;quot;snapshot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tous ces fichiers peuvent permettre au testeur d’accéder au fonctionnement interne, aux portes dérobées, aux interfaces d’administration, ou même aux justificatifs d'accès privilégiés permettant de se connecter à l'interface d'administration et au serveur de bases de données. &lt;br /&gt;
&lt;br /&gt;
Les fichiers n’ayant aucun lien avec l’application et, ayant été générés par l’édition de fichiers d’application, ou issus de copies de sauvegarde instantanées, ou les fichiers obsolètes ou, non référencés laissés dans l’arborescence du serveur Web, sont une source importante de vulnérabilités.&lt;br /&gt;
&lt;br /&gt;
Editer des fichiers sur le serveur de production ou, y faire d’autres actions d'administration, peut y laisser malencontreusement des copies de sauvegarde qu'elles soient générées, automatiquement par l’éditeur lors d'une édition de fichiers, ou directement par l’administrateur lorsqu'il crée un fichier zippé d’un ensemble de fichiers pour faire une sauvegarde. &lt;br /&gt;
&lt;br /&gt;
Il est facile d’oublier de tels fichiers et cela peut présenter de sérieuses menaces de sécurité pour l’application. Cela arrive parce que les copies de sauvegarde peuvent être générées avec des extensions de sauvegarde différentes des fichiers originaux. Une archive .tar, .zip ou .gz que nous générons (et oublions) a, bien sûr, une extension différente, et il arrive la même chose avec les copies générées par beaucoup éditeurs (par exemple, emacs génère une copie de sauvegarde nommée ''file~'' lorsqu’on édite ''file''). Une copie manuelle peut aboutir au même résultat (comme copier ''file'' en ''file.old''). Le système de fichier sous-jacent peut faire des «copies instantanées» de vos applications, à différents moments, sans que vous le sachiez, et ils peuvent être accessibles par le Web, ce qui présente une menace de type «fichiers de sauvegarde», différente mais similaire, pour votre application.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ces activités peuvent générer des fichiers non nécessaires à l’application qui peuvent être gérés différemment des fichiers originaux par le serveur web. Par exemple, si nous faisons une copie du fichier ''login.asp'' vers ''login.asp.old'', nous permettons aux utilisateurs de télécharger le code source de ''login.asp''. Ceci parce ''login.asp.old'' sera habituellement ouvert comme un fichier texte ou brut plutôt qu’exécuté à cause de son extension. En d’autres termes, l’accès au fichier ''login.asp'' entraîne l’exécution sur le serveur du code ''login.asp'' tandis que l’accès au fichier ''login.asp.old'' conduit à renvoyer simplement à l'utilisateur le contenu du fichier ''login.asp.old'' (qui est, là aussi, le code du serveur) et à l'afficher sur le navigateur de l’utilisateur. Cela présente des risques de sécurité puisque des informations de sécurité peuvent ainsi être révélées.&lt;br /&gt;
&lt;br /&gt;
Généralement, exposer le code du serveur n’est pas une bonne idée. Non seulement, vous exposez inutilement la logique de l’entreprise mais vous pouvez divulguer sans le savoir des informations relatives à l’application qui peuvent aider l’attaquant (chemin d’accès, structures des données, etc...). Ceci sans mentionner le fait qu’on trouve beaucoup trop de scripts avec des comptes et mots de passe en clair (ce qui est une pratique imprudente et dangereuse).&lt;br /&gt;
&lt;br /&gt;
D’autres causes de fichiers non référencés sont dues aux choix d’architecture et de configuration quand ceux-ci permettent au serveur web d’accéder à toutes sortes de fichiers relatifs à l’application tels que des fichiers de données, de configuration, de logs stockés dans des répertoires du système de fichier. &lt;br /&gt;
&lt;br /&gt;
Ces fichiers n’ont normalement rien à faire dans l’espace du système de fichiers accessible par le web puisqu’ils ne devraient être accessibles qu’au niveau de l’application, par l’application elle-même (et non par un utilisateur occasionnel qui navigue autour).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menaces ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegardes et, les fichiers anciens ou non référencés, représentent diverses menaces à la sécurité d’une application web :&lt;br /&gt;
&lt;br /&gt;
* Les fichiers non référencés peuvent dévoiler des informations sensibles qu peuvent faciliter une attaque ciblée d’une application ; par exemple cela comprend les bases de données de justificatifs d’accès, les fichiers de configuration contenant des références à des contenus cachés, chemins d’accès complets, etc...&lt;br /&gt;
&lt;br /&gt;
* Des pages non référencées peuvent contenir de puissantes fonctionnalités pouvant être utilisées pour attaquer l’application ; par exemple une page d’administration non publiée mais qui peut être accédée par n’importe quel utilisateur qui sait où la trouver.&lt;br /&gt;
&lt;br /&gt;
* D’anciens fichiers ou des fichiers de sauvegarde peuvent contenir des vulnérabilités qui ont été corrigées dans des versions plus récentes ; par exemple ''viewdoc.old.jsp'' peut contenir une vulnérabilité de type «traversée de répertoires» ou &amp;quot;Path Traversal&amp;quot; qui a été corrigée dans ''viewdoc.jsp'' mais peut toujours être exploitée par celui qui trouve cette vieille version. &lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent dévoiler le code source des pages prévues pour être exécutées sur le serveur ; par exemple, ouvrir ''viewdoc.bak'' peut renvoyer le code source de ''viewdoc.jsp'', qui peut être analysé pour en rechercher les vulnérabilités qui seraient difficiles à trouver en faisant des requêtes à l’aveugle vers la page exécutable. Alors que cette menace s’applique évidemment au langages de script, tels que Perl, PHP, ASP, shell scripts, JSP, etc., cela ne se limite pas à eux seuls, comme nous le verrons dans l’exemple du prochain paragraphe.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent contenir des copies de tous les fichiers sous la racine (ou même en dehors) du site web. Cela permet à l’attaquant de rapidement énumérer l’application entière, dont les pages non référérencées, le code source, les fichiers inclus, etc... par exemple, si vous avez oublié un fichier nommé ''myservlets.jar.old'' qui contient (une copie de sauvegarde de) vos classes de servlet implémentées, vous exposez beaucoup d’informations sensibles pouvant faire l’objet de décompilation ou de rétro-ingénierie. &lt;br /&gt;
&lt;br /&gt;
* Dans certains cas, éditer ou copier un fichier ne modifie pas l’extension de fichier mais modifie le nom du fichier. Cela arrive, par exemple dans les environnements Windows, où les opérations de copie de fichier génèrent des fichiers suffixés avec «-Copie» ou des versions locales de cette chaîne. Puisque l’extension de fichier reste inchangée, ce n’est pas le cas où le fichier exécutable est renvoyé comme texte en clair par le serveur web, donc pas un cas de divulgation de code source. Malgré tout, ces fichiers aussi sont dangereux car il y a une possibilité qu’ils contiennent une logique incorrecte ou obsolète et peuvent, s'ils sont accédés, déclencher des erreurs d’application, qui donnent de précieuses informations à l’attaquant, si le message d’erreur s’affiche.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers journaux peuvent contenir des informations sensibles à propos des usages de l’application par les utilisateurs, par exemple les données sensibles passées en paramètre aux URL, les ID de session, les URL visités (qui peuvent divulguer d’autres contenus non référencés), etc... D’autres fichiers journaux (ex. les journaux ftp) peuvent contenir des informations sensibles à propos de la maintenance de l’application par les administrateurs système.&lt;br /&gt;
&lt;br /&gt;
* Les copies instantanées de système de fichiers peuvent contenir des copies de code ayant des vulnérabilités corrigées dans les versions plus récentes. Par exemple, ''/.snapshot/monthly.1/view.php'' peut contenir une vulnérabilité de type « traversée de répertoire » qui a été corrigée dans ''/view.php'' mais qui peut toujours être exploitée par celui qui trouve la vieille version du fichier. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester==&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
Le test des fichiers non référencés utilise à la fois des techniques manuelles et automatiques et typiquement combine les suivantes : &lt;br /&gt;
&lt;br /&gt;
==== Déductions du schéma de nommage du contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Dénombrer toutes les pages et les fonctionnalités de l’application. Cela peut être fait manuellement avec un navigateur ou en utilisant un outil d’exploration (« spidering ») d’application. La plupart des applications utilisent un schéma de nommage identifiable, et organisent les ressources en pages et répertoires en utilisant des mots décrivant leurs fonctions. A partir du schéma de nommage utilisé pour le contenu publié, il est souvent possible d’en déduire le nom et l’emplacement des fichiers non référencés. Par exemple, si on trouve une page ''viewuser.asp'', alors il faut chercher ''edituser.asp'',''adduser.asp'' et ''deleteuser.asp''. Si on trouve un répertoire ''/app/user'', il faut aussi chercher ''/app/admin'' et ''/app/manager''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Autres indices dans le contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Beaucoup d’applications web laissent des indices dans leur contenu publié qui peuvent conduire à découvrir des fonctionnalités ou des pages cachées. Ces indices se retrouvent souvent dans le code source HTML et dans les fichiers JavaScript. Le code source de tous les contenus publiés devrait être revu manuellement pour identifier les indices laissés concernant les fonctionnalités et les pages.&lt;br /&gt;
&lt;br /&gt;
Par exemple : &lt;br /&gt;
&lt;br /&gt;
Les commentaires et les sections commentées du code source par les programmeurs peuvent faire référence à du contenu caché : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;A HREF=&amp;quot;uploadfile.jsp&amp;quot;&amp;gt;Upload a document to the server&amp;lt;/A&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Link removed while bugs in uploadfile.jsp are fixed          --&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScript peut contenir des liens sur des pages qui sont uniquement émises dans l’interface graphique de l’utilisateur dans certaines circonstances : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var adminUser=false;&lt;br /&gt;
:&lt;br /&gt;
if (adminUser) menu.add (new menuItem (&amp;quot;Maintain users&amp;quot;, &amp;quot;/admin/useradmin.jsp&amp;quot;)); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les pages HTML peuvent contenir des FORMs qui ont été cachées en désactivant l’élément SUBMIT : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FORM action=&amp;quot;forgotPassword.jsp&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;INPUT type=&amp;quot;hidden&amp;quot; name=&amp;quot;userID&amp;quot; value=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;lt;INPUT type=&amp;quot;submit&amp;quot; value=&amp;quot;Forgot Password&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre source d’indices concernant les répertoires non référencés est le fichier ''/robots.txt'', fichier utilisé pour donner des instructions aux robots d’indexation du Web : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User-agent: *&lt;br /&gt;
Disallow: /Admin&lt;br /&gt;
Disallow: /uploads&lt;br /&gt;
Disallow: /backup&lt;br /&gt;
Disallow: /~jbloggs&lt;br /&gt;
Disallow: /include &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Recherche à l'aveugle ====&lt;br /&gt;
&lt;br /&gt;
Dans sa forme la plus simple, il s'agit de lancer une recherche de noms de fichiers usuels via un moteur de requêtes dans le but de deviner quels sont les fichiers et les répertoires existant sur le serveur. Ce script qui utilise une commande &amp;quot;netcat&amp;quot; lira une liste de mots à partir de stdin et réalisera une attaque élémentaire par conjecture ou &amp;quot;guessing attack&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
server=www.targetapp.com&lt;br /&gt;
port=80&lt;br /&gt;
&lt;br /&gt;
while read url&lt;br /&gt;
do&lt;br /&gt;
echo -ne &amp;quot;$url\t&amp;quot;&lt;br /&gt;
echo -e &amp;quot;GET /$url HTTP/1.0\nHost: $server\n&amp;quot; | netcat $server $port | head -1&lt;br /&gt;
done | tee outputfile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suivant la configuration du serveur, on pourra remplacer la commande GET par une commande HEAD pour avoir des résultats plus rapides. On pourra ensuite faire une commande grep sur le fichier de sortie pour y rechercher des codes de réponse “intéressants”. Le code de réponse &amp;quot;200&amp;quot; (OK) indique habituellement qu'une ressource valide a été trouvée (a priori, un serveur ne renvoit pas une page “not found” avec un code &amp;quot;200&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Rechercher aussi les codes &amp;quot;301&amp;quot; (Déplacé), &amp;quot;302&amp;quot; (Trouvé), &amp;quot;401&amp;quot; (Non autorisé), &amp;quot;403&amp;quot; (Interdit) and 500 (Erreur Interne), qui peuvent aussi référencer des ressources et des répertoires qui méritent plus d'investigation. &lt;br /&gt;
&lt;br /&gt;
L'attaque élémentaire par conjecture doit s'effectuer sur le répertoire racine du serveur, le &amp;quot;webroot&amp;quot;, et aussi sur tous les répertoires identifiés par d'autres méthodes d'énumeration. Des attaques par conjecture, plus avancées et efficaces, peuvent être réalisées comme ceci: &lt;br /&gt;
&lt;br /&gt;
* Identifier les extensions de fichiers utilisées dans les espaces connus de l'application (ex. jsp, aspx, html), et prendre une liste de mots de base ajoutés à ces extensions ou prendre une plus longue liste des extensions communes si les ressources le permettent). &lt;br /&gt;
&lt;br /&gt;
* Pour chaque fichier identifié par d'autres techniques d'énumeration, créer une liste de mots personnalisés dérivés du nom de fichier. &lt;br /&gt;
Prendre une liste des extensions de fichier usuels (incluant les ~, bak, txt, src, dev, old, inc, orig, copy, tmp, etc.) et utiliser chaque extension avant, après, et à la place de l'extension actuelle du fichier.&lt;br /&gt;
&lt;br /&gt;
Note: Les opérations de copie de fichiers Windows génèrent des noms de fichiers postfixés par “-Copie“ ou par des versions localisées de cette chaîne, mais ne changent pas l'extension du fichier. Bien que les fichiers “-Copie“ ne divulguent pas habituellement le source code quand on y accède, ils peuvent néanmoins divulguer des informations sensibles dans le cas où ils génèrent des erreurs quand on y accède.&lt;br /&gt;
&lt;br /&gt;
==== Informations obtenues grâce aux vulnérabilités et aux mauvaises configurations du serveur ====&lt;br /&gt;
&lt;br /&gt;
Le cas le plus flagrant où une mauvaise configuration du serveur peut divulguer des pages non référencées est l'énumération des répertoires. Rechercher dans tous les répertoires énumérés pour identifier ceux qui listent des répertoires. &lt;br /&gt;
&lt;br /&gt;
On trouve de nombreuses vulnérabilités sur des serveurs Web personnels qui permettent aux attaquants de lister du contenu non référencé, comme par exemple : &lt;br /&gt;
&lt;br /&gt;
* Vulnérabilité ?M=D de listage des répertoires sur Apache.  &lt;br /&gt;
* Nombreuses vulnérabilités de divulgations de scripts sources sur IIS. &lt;br /&gt;
* Vulnérabilités de listage de répertoires sur WebDAV IIS. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Utilisation de l'information accessible au public ====&lt;br /&gt;
&lt;br /&gt;
Les pages et les fonctionnalités, des applications web sur Internet, qui ne sont pas référencées par l'application elle-même peuvent être référencées par d'autres sources du domaine public. Il existe plusieurs sources de ces références : &lt;br /&gt;
&lt;br /&gt;
* Les pages habituellement référencées peuvent toujours apparaître dans les archives des moteurs de recherche Internet. Par exemple, ''1998results.asp'' peut ne plus être lié à un site web d'entreprise, mais cependant rester sur le serveur et dans les bases de données des moteurs de recherche. Ce vieux script peut contenir des vulnérabilités qui peuvent permettre de compromettre le site entier. L'opérateur de recherche Google ''site:'' peut être utilisé pour faire une recherche sur un seul domaine choisi, comme dans : ''site:www.example.com''. Utiliser les moteurs de recherche de cette façon a permis un large éventail de techniques que vous pourrez trouver utiles et qui sont décrites dans la section ''Google Hacking'' de ce Guide.&lt;br /&gt;
Lisez-le pour affûter vos compétences de test via Google. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ATTEntion : section Google Hacking non retrouvée --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegarde ne sont probablement pas référencés par d'autres fichiers et ainsi ne doivent pas avoir été indexés par Google mais s'ils se trouvent dans des répertoires accessibles par votre navigateur,le moteur de recherche peut en avoir connaissance.&lt;br /&gt;
&lt;br /&gt;
* De plus, Google et Yahoo conservent des versions en cache des pages trouvées par leurs robots. Même si ''1998results.asp'' a été supprimé du serveur cible, une version de ses résultats peut toujours être stockée par ces moteurs de recherche. Ces versions en cache peuvent contenir des références ou, des indices sur un autre contenu additionnel caché, qui existe toujours sur le serveur. &lt;br /&gt;
&lt;br /&gt;
* Du contenu, non référencé par une application cible, peut être lié à des sites web d'un tiers. Par exemple, une application qui gère les paiements en ligne pour le compte d'un site marchand peut contenir une diversité de fonctionnalités sur mesure qui ne doivent, normallement, être retrouvées qu'en suivant les liens des sites web de leurs clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Contournement du filtrage des noms de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Comme les filtres de liste noire sont basés sur des expressions régulières, on peut parfois profiter de fonctionnalités d'expansions opaques de noms de fichiers qui fonctionnent d'une façon que le éveloppeur n'imagine pas.&lt;br /&gt;
&lt;br /&gt;
Le testeur peut parfois exploiter la différence dans la façon dont les noms de fichiers sont analysés par l'application, le serveur web, et le système d'exploitation sous-jacent et ses conventions de nommage de fichiers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemple: Expansion des noms de fichiers sous Windows 8.3 &lt;br /&gt;
&amp;quot;c:\program files&amp;quot; devient &amp;quot;C:\PROGRA~1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
– Supprime les caractères incompatibles&lt;br /&gt;
– Convertit les espaces en caractère souligné bas &amp;quot;_&amp;quot;&lt;br /&gt;
- Prend les six premiers caractères du nom &lt;br /&gt;
– Ajoute “~&amp;lt;chiffre&amp;gt;” pour différencier les fichiers dont les noms ont les mêmes six premiers caractères &lt;br /&gt;
- Cette convention change après les 3 premières collisions de noms&lt;br /&gt;
– Tronque les extensions de fichiers à trois caractères&lt;br /&gt;
- Met tous les caractères en lettres majuscules &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Réaliser un test en boite grise sur les vieux fichiers et les fichiers de sauvegarde nécessite l'examen des fichiers contenus dans les répertoires appartenant à l'ensemble des répertoires Web servis par le(s) serveur(s) internet de l'infrastructure de l'application. Théoriquement, l'examen devrait être réalisé manuellement pour être exhaustif. &lt;br /&gt;
&lt;br /&gt;
Quoiqu'il en soit, comme la plupart du temps les copies ou les sauvegardes de fichiers utilisent les mêmes conventions de nommage, la recherche peut être effectuée facilement par script. Par exemple, les éditeurs nomment les copies de sauvegardes avec une extension reconnaissable et les humains tendent à les nommer en .old ou une autre extension similaire prédictible.&lt;br /&gt;
 &lt;br /&gt;
Uune bonne stratégie consiste à planifier une tâche de fond périodique à la recherche de fichiers avec des extensions qui les identifient comme de probables copies ou des sauvegardes de fichiers et à faire aussi des vérifications manuelles sur des périodes plus longues.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Les outils d'évaluation de vulnérabilités tendent à inclure des vérifications pour repérer les répertoires web avec des noms standard (tels que “admin”, “test”, “backup”, etc.), et à recenser tout répertoire web qui en autorise l'indexation. Si vous ne pouvez pas lister les répertoires, vous devriez essayer de vérifier les extensions probables des fichiers de sauvegarde. Regarder par exemple Nessus (http://www.nessus.org), Nikto2(http://www.cirt.net/code/nikto.shtml) ou les nouveaux dérivés Wikto (http://www.sensepost.com/research/wikto/), qui supportent les stratégies de base du Google Hacking.&lt;br /&gt;
&lt;br /&gt;
* Robots d'exploration du Web &amp;quot;spider tools&amp;quot;: &lt;br /&gt;
** wget (http://www.gnu.org/software/wget/, http://www.interlog.com/~tcharron/wgetwin.html); &lt;br /&gt;
** Sam Spade (http://www.samspade.org); &lt;br /&gt;
** Le proxy Spike comprend une fonction d'exploration de site web (http://www.immunitysec.com/spikeproxy.html); &lt;br /&gt;
** Xenu (http://home.snafu.de/tilman/xenulink.html); &lt;br /&gt;
** curl (http://curl.haxx.se). &lt;br /&gt;
Certains de ces outils sont compris en standard dans les distributions Linux.&lt;br /&gt;
  &lt;br /&gt;
* Les utilitaires de développement Web ont généralement des outils pour identifier les liens cassés et les fichiers non référencés.&lt;br /&gt;
&lt;br /&gt;
== Remédiation ==&lt;br /&gt;
&lt;br /&gt;
Pour garantir une stratégie de protection efficace, les tests doivent être complétés par une politique de sécurité qui interdit clairement des pratiques dangereuses telles que :&lt;br /&gt;
&lt;br /&gt;
* Editer des fichiers directement sur le serveur web ou sur le système de fichiers de l'application. C'est vraiment une mauvaise habitude car il est prévisible que les éditeurs génèrent des fichiers de backup non souhaités. C'est étonnant de voir comme c'est fréquent, même dans les grandes organisations. Si vous avez absolument besoin d'éditer un fichier sur un serveur de production, assurez-vous de n'y laisser que ce qui est explicitement nécessaire, et considérez que vous le faites à vos propres risques.&lt;br /&gt;
  &lt;br /&gt;
* Vérifier soigneusement toute autre activité réalisée sur le système de fichiers exposé par le serveur Web, telles que les activités d'administration. Par exemple, si vous avez ponctuellement besoin de faire une &amp;quot;copie instantanée&amp;quot; de quelques répertoires (ce que vous devriez pas faire en production), vous pouvez être tenté au préalable d'en faire un fichier zippé. &lt;br /&gt;
Faites attention de ne pas laisser l'archive derrière vous.&lt;br /&gt;
&lt;br /&gt;
* Une politique de gestion de configuration devrait permettre de ne pas laisser traîner des fichiers obsolètes ou non référencés.&lt;br /&gt;
&lt;br /&gt;
* Les applications devraient être concues pour ne pas créer (ou s'appuyer sur) des fichiers stockés sous l'arborescence de répertoires mis à disposition par le serveur Web. Les fichiers de données, de traces, de configuration, etc..., devraient être stockés dans des répertoires inaccessibles au serveur Web, pour contrer les possibilités de divulgation d'information (pour ne pas mentionner les modifications de données si les permissions sur les répertoires Web autorisent l'écriture).&lt;br /&gt;
&lt;br /&gt;
* Les &amp;quot;copies instantanées&amp;quot; ou &amp;quot;snapshot&amp;quot; de système de fichiers ne devraient pas être accessibles par le Web si l'emplacement du document est sur un système de fichiers utilisant cette technologie. &lt;br /&gt;
&lt;br /&gt;
Configurer votre serveur Web pour refuser l'accès à de tels répertoires, par exemple, sous Apache une directive &amp;lt;location&amp;gt;, comme indiqué ci-dessous, devrait être mise en place :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Location ~ &amp;quot;.snapshot&amp;quot;&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=202083</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=202083"/>
				<updated>2015-10-13T11:17:20Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management, Asset Security,&lt;br /&gt;
Security Engineering, Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP TEN 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP 10 2013 en Français]&amp;lt;br /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP Testing Guide v4» :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.4 Revue des fichiers obsolètes, de sauvegarde, non references pour recherche d'informations sensibles (OTG-CONFIG-004)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.5.8 Test de Questions-Reponses Faibles (OTG-AUTHN-008)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[OWASP Guide de Test v4-Annexe B-Conseils de Lecture]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202082</id>
		<title>4.3.4 Revue des fichiers pour recherche d'informations sensibles (OTG-CONFIG-004)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=202082"/>
				<updated>2015-10-13T11:02:40Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bien que la plupart des fichiers d’un serveur Web soient gérés directement par le serveur lui-même, il n’est pas inhabituel d’y trouver des fichiers non référencés,ou oubliés, qui permettent d’obtenir des informations sensibles sur l’infrastructure ou sur des justificatifs d’accès. &lt;br /&gt;
&lt;br /&gt;
La plupart des scénarios reposent sur la présence d'anciennes versions de fichiers modifiés et renommés, sur des fichiers d'inclusion, qui ont été chargés selon les règles du langage utilisé, et qui peuvent être téléchargés en tant que fichiers sources, ou même des sauvegardes automatiques, ou manuelles, telles que des fichiers d'archives compressées. Des fichiers de sauvegarde peuvent aussi être générés automatiquement par le système de fichiers sur lequel l’application est hébergée, une fonction habituellement appelée &amp;quot;copie instantanée&amp;quot; ou &amp;quot;snapshot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tous ces fichiers peuvent permettre au testeur d’accéder au fonctionnement interne, aux portes dérobées, aux interfaces d’administration, ou même aux justificatifs d'accès privilégiés permettant de se connecter à l'interface d'administration et au serveur de bases de données. &lt;br /&gt;
&lt;br /&gt;
Les fichiers n’ayant aucun lien avec l’application et, ayant été générés par l’édition de fichiers d’application, ou issus de copies de sauvegarde instantanées, ou les fichiers obsolètes ou, non référencés laissés dans l’arborescence du serveur Web, sont une source importante de vulnérabilités.&lt;br /&gt;
&lt;br /&gt;
Editer des fichiers sur le serveur de production ou, y faire d’autres actions d'administration, peut y laisser malencontreusement des copies de sauvegarde qu'elles soient générées, automatiquement par l’éditeur lors d'une édition de fichiers, ou directement par l’administrateur lorsqu'il crée un fichier zippé d’un ensemble de fichiers pour faire une sauvegarde. &lt;br /&gt;
&lt;br /&gt;
Il est facile d’oublier de tels fichiers et cela peut présenter de sérieuses menaces de sécurité pour l’application. Cela arrive parce que les copies de sauvegarde peuvent être générées avec des extensions de sauvegarde différentes des fichiers originaux. Une archive .tar, .zip ou .gz que nous générons (et oublions) a, bien sûr, une extension différente, et il arrive la même chose avec les copies générées par beaucoup éditeurs (par exemple, emacs génère une copie de sauvegarde nommée ''file~'' lorsqu’on édite ''file''). Une copie manuelle peut aboutir au même résultat (comme copier ''file'' en ''file.old''). Le système de fichier sous-jacent peut faire des «copies instantanées» de vos applications, à différents moments, sans que vous le sachiez, et ils peuvent être accessibles par le Web, ce qui présente une menace de type «fichiers de sauvegarde», différente mais similaire, pour votre application.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ces activités peuvent générer des fichiers non nécessaires à l’application qui peuvent être gérés différemment des fichiers originaux par le serveur web. Par exemple, si nous faisons une copie du fichier ''login.asp'' vers ''login.asp.old'', nous permettons aux utilisateurs de télécharger le code source de ''login.asp''. Ceci parce ''login.asp.old'' sera habituellement ouvert comme un fichier texte ou brut plutôt qu’exécuté à cause de son extension. En d’autres termes, l’accès au fichier ''login.asp'' entraîne l’exécution sur le serveur du code ''login.asp'' tandis que l’accès au fichier ''login.asp.old'' conduit à renvoyer simplement à l'utilisateur le contenu du fichier ''login.asp.old'' (qui est, là aussi, le code du serveur) et à l'afficher sur le navigateur de l’utilisateur. Cela présente des risques de sécurité puisque des informations de sécurité peuvent ainsi être révélées.&lt;br /&gt;
&lt;br /&gt;
Généralement, exposer le code du serveur n’est pas une bonne idée. Non seulement, vous exposez inutilement la logique de l’entreprise mais vous pouvez divulguer sans le savoir des informations relatives à l’application qui peuvent aider l’attaquant (chemin d’accès, structures des données, etc...). Ceci sans mentionner le fait qu’on trouve beaucoup trop de scripts avec des comptes et mots de passe en clair (ce qui est une pratique imprudente et dangereuse).&lt;br /&gt;
&lt;br /&gt;
D’autres causes de fichiers non référencés sont dues aux choix d’architecture et de configuration quand ceux-ci permettent au serveur web d’accéder à toutes sortes de fichiers relatifs à l’application tels que des fichiers de données, de configuration, de logs stockés dans des répertoires du système de fichier. &lt;br /&gt;
&lt;br /&gt;
Ces fichiers n’ont normalement rien à faire dans l’espace du système de fichiers accessible par le web puisqu’ils ne devraient être accessibles qu’au niveau de l’application, par l’application elle-même (et non par un utilisateur occasionnel qui navigue autour).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menaces ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegardes et, les fichiers anciens ou non référencés, représentent diverses menaces à la sécurité d’une application web :&lt;br /&gt;
&lt;br /&gt;
* Les fichiers non référencés peuvent dévoiler des informations sensibles qu peuvent faciliter une attaque ciblée d’une application ; par exemple cela comprend les bases de données de justificatifs d’accès, les fichiers de configuration contenant des références à des contenus cachés, chemins d’accès complets, etc...&lt;br /&gt;
&lt;br /&gt;
* Des pages non référencées peuvent contenir de puissantes fonctionnalités pouvant être utilisées pour attaquer l’application ; par exemple une page d’administration non publiée mais qui peut être accédée par n’importe quel utilisateur qui sait où la trouver.&lt;br /&gt;
&lt;br /&gt;
* D’anciens fichiers ou des fichiers de sauvegarde peuvent contenir des vulnérabilités qui ont été corrigées dans des versions plus récentes ; par exemple ''viewdoc.old.jsp'' peut contenir une vulnérabilité de type «traversée de répertoires» ou &amp;quot;Path Traversal&amp;quot; qui a été corrigée dans ''viewdoc.jsp'' mais peut toujours être exploitée par celui qui trouve cette vieille version. &lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent dévoiler le code source des pages prévues pour être exécutées sur le serveur ; par exemple, ouvrir ''viewdoc.bak'' peut renvoyer le code source de ''viewdoc.jsp'', qui peut être analysé pour en rechercher les vulnérabilités qui seraient difficiles à trouver en faisant des requêtes à l’aveugle vers la page exécutable. Alors que cette menace s’applique évidemment au langages de script, tels que Perl, PHP, ASP, shell scripts, JSP, etc., cela ne se limite pas à eux seuls, comme nous le verrons dans l’exemple du prochain paragraphe.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent contenir des copies de tous les fichiers sous la racine (ou même en dehors) du site web. Cela permet à l’attaquant de rapidement énumérer l’application entière, dont les pages non référérencées, le code source, les fichiers inclus, etc... par exemple, si vous avez oublié un fichier nommé ''myservlets.jar.old'' qui contient (une copie de sauvegarde de) vos classes de servlet implémentées, vous exposez beaucoup d’informations sensibles pouvant faire l’objet de décompilation ou de rétro-ingénierie. &lt;br /&gt;
&lt;br /&gt;
* Dans certains cas, éditer ou copier un fichier ne modifie pas l’extension de fichier mais modifie le nom du fichier. Cela arrive, par exemple dans les environnements Windows, où les opérations de copie de fichier génèrent des fichiers suffixés avec «-Copie» ou des versions locales de cette chaîne. Puisque l’extension de fichier reste inchangée, ce n’est pas le cas où le fichier exécutable est renvoyé comme texte en clair par le serveur web, donc pas un cas de divulgation de code source. Malgré tout, ces fichiers aussi sont dangereux car il y a une possibilité qu’ils contiennent une logique incorrecte ou obsolète et peuvent, s'ils sont accédés, déclencher des erreurs d’application, qui donnent de précieuses informations à l’attaquant, si le message d’erreur s’affiche.&lt;br /&gt;
&lt;br /&gt;
* Les fichiers journaux peuvent contenir des informations sensibles à propos des usages de l’application par les utilisateurs, par exemple les données sensibles passées en paramètre aux URL, les ID de session, les URL visités (qui peuvent divulguer d’autres contenus non référencés), etc... D’autres fichiers journaux (ex. les journaux ftp) peuvent contenir des informations sensibles à propos de la maintenance de l’application par les administrateurs système.&lt;br /&gt;
&lt;br /&gt;
* Les copies instantanées de système de fichiers peuvent contenir des copies de code ayant des vulnérabilités corrigées dans les versions plus récentes. Par exemple, ''/.snapshot/monthly.1/view.php'' peut contenir une vulnérabilité de type « traversée de répertoire » qui a été corrigée dans ''/view.php'' mais qui peut toujours être exploitée par celui qui trouve la vieille version du fichier. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester==&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
Le test des fichiers non référencés utilise à la fois des techniques manuelles et automatiques et typiquement combine les suivantes : &lt;br /&gt;
&lt;br /&gt;
==== Déductions du schéma de nommage du contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Dénombrer toutes les pages et les fonctionnalités de l’application. Cela peut être fait manuellement avec un navigateur ou en utilisant un outil d’exploration (« spidering ») d’application. La plupart des applications utilisent un schéma de nommage identifiable, et organisent les ressources en pages et répertoires en utilisant des mots décrivant leurs fonctions. A partir du schéma de nommage utilisé pour le contenu publié, il est souvent possible d’en déduire le nom et l’emplacement des fichiers non référencés. Par exemple, si on trouve une page ''viewuser.asp'', alors il faut chercher ''edituser.asp'',''adduser.asp'' et ''deleteuser.asp''. Si on trouve un répertoire ''/app/user'', il faut aussi chercher ''/app/admin'' et ''/app/manager''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Autres indices dans le contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Beaucoup d’applications web laissent des indices dans leur contenu publié qui peuvent conduire à découvrir des fonctionnalités ou des pages cachées. Ces indices se retrouvent souvent dans le code source HTML et dans les fichiers JavaScript. Le code source de tous les contenus publiés devrait être revu manuellement pour identifier les indices laissés concernant les fonctionnalités et les pages.&lt;br /&gt;
&lt;br /&gt;
Par exemple : &lt;br /&gt;
&lt;br /&gt;
Les commentaires et les sections commentées du code source par les programmeurs peuvent faire référence à du contenu caché : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;A HREF=&amp;quot;uploadfile.jsp&amp;quot;&amp;gt;Upload a document to the server&amp;lt;/A&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Link removed while bugs in uploadfile.jsp are fixed          --&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScript peut contenir des liens sur des pages qui sont uniquement émises dans l’interface graphique de l’utilisateur dans certaines circonstances : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var adminUser=false;&lt;br /&gt;
:&lt;br /&gt;
if (adminUser) menu.add (new menuItem (&amp;quot;Maintain users&amp;quot;, &amp;quot;/admin/useradmin.jsp&amp;quot;)); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les pages HTML peuvent contenir des FORMs qui ont été cachées en désactivant l’élément SUBMIT : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FORM action=&amp;quot;forgotPassword.jsp&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;INPUT type=&amp;quot;hidden&amp;quot; name=&amp;quot;userID&amp;quot; value=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;lt;INPUT type=&amp;quot;submit&amp;quot; value=&amp;quot;Forgot Password&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre source d’indices concernant les répertoires non référencés est le fichier ''/robots.txt'', fichier utilisé pour donner des instructions aux robots d’indexation du Web : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User-agent: *&lt;br /&gt;
Disallow: /Admin&lt;br /&gt;
Disallow: /uploads&lt;br /&gt;
Disallow: /backup&lt;br /&gt;
Disallow: /~jbloggs&lt;br /&gt;
Disallow: /include &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Recherche à l'aveugle ====&lt;br /&gt;
&lt;br /&gt;
Dans sa forme la plus simple, il s'agit de lancer une recherche de noms de fichiers usuels via un moteur de requêtes dans le but de deviner quels sont les fichiers et les répertoires existant sur le serveur. Ce script qui utilise une commande &amp;quot;netcat&amp;quot; lira une liste de mots à partir de stdin et réalisera une attaque élémentaire par conjecture ou &amp;quot;guessing attack&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
server=www.targetapp.com&lt;br /&gt;
port=80&lt;br /&gt;
&lt;br /&gt;
while read url&lt;br /&gt;
do&lt;br /&gt;
echo -ne &amp;quot;$url\t&amp;quot;&lt;br /&gt;
echo -e &amp;quot;GET /$url HTTP/1.0\nHost: $server\n&amp;quot; | netcat $server $port | head -1&lt;br /&gt;
done | tee outputfile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suivant la configuration du serveur, on pourra remplacer la commande GET par une commande HEAD pour avoir des résultats plus rapides. On pourra ensuite faire une commande grep sur le fichier de sortie pour y rechercher des codes de réponse “intéressants”. Le code de réponse &amp;quot;200&amp;quot; (OK) indique habituellement qu'une ressource valide a été trouvée (a priori, un serveur ne renvoit pas une page “not found” avec un code &amp;quot;200&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Rechercher aussi les codes &amp;quot;301&amp;quot; (Déplacé), &amp;quot;302&amp;quot; (Trouvé), &amp;quot;401&amp;quot; (Non autorisé), &amp;quot;403&amp;quot; (Interdit) and 500 (Erreur Interne), qui peuvent aussi référencer des ressources et des répertoires qui méritent plus d'investigation. &lt;br /&gt;
&lt;br /&gt;
L'attaque élémentaire par conjecture doit s'effectuer sur le répertoire racine du serveur, le &amp;quot;webroot&amp;quot;, et aussi sur tous les répertoires identifiés par d'autres méthodes d'énumeration. Des attaques par conjecture, plus avancées et efficaces, peuvent être réalisées comme ceci: &lt;br /&gt;
&lt;br /&gt;
* Identifier les extensions de fichiers utilisées dans les espaces connus de l'application (ex. jsp, aspx, html), et prendre une liste de mots de base ajoutés à ces extensions ou prendre une plus longue liste des extensions communes si les ressources le permettent). &lt;br /&gt;
&lt;br /&gt;
* Pour chaque fichier identifié par d'autres techniques d'énumeration, créer une liste de mots personnalisés dérivés du nom de fichier. &lt;br /&gt;
Prendre une liste des extensions de fichier usuels (incluant les ~, bak, txt, src, dev, old, inc, orig, copy, tmp, etc.) et utiliser chaque extension avant, après, et à la place de l'extension actuelle du fichier.&lt;br /&gt;
&lt;br /&gt;
Note: Les opérations de copie de fichiers Windows génèrent des noms de fichiers postfixés par “-Copie“ ou par des versions localisées de cette chaîne, mais ne changent pas l'extension du fichier. Bien que les fichiers “-Copie“ ne divulguent pas habituellement le source code quand on y accède, ils peuvent néanmoins divulguer des informations sensibles dans le cas où ils génèrent des erreurs quand on y accède.&lt;br /&gt;
&lt;br /&gt;
==== Informations obtenues grâce aux vulnérabilités et aux mauvaises configurations du serveur ====&lt;br /&gt;
&lt;br /&gt;
Le cas le plus flagrant où une mauvaise configuration du serveur peut divulguer des pages non référencées est l'énumération des répertoires. Rechercher dans tous les répertoires énumérés pour identifier ceux qui listent des répertoires. &lt;br /&gt;
&lt;br /&gt;
On trouve de nombreuses vulnérabilités sur des serveurs Web personnels qui permettent aux attaquants de lister du contenu non référencé, comme par exemple : &lt;br /&gt;
&lt;br /&gt;
* Vulnérabilité ?M=D de listage des répertoires sur Apache.  &lt;br /&gt;
* Nombreuses vulnérabilités de divulgations de scripts sources sur IIS. &lt;br /&gt;
* Vulnérabilités de listage de répertoires sur WebDAV IIS. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Utilisation de l'information accessible au public ====&lt;br /&gt;
&lt;br /&gt;
Les pages et les fonctionnalités, des applications web sur Internet, qui ne sont pas référencées par l'application elle-même peuvent être référencées par d'autres sources du domaine public. Il existe plusieurs sources de ces références : &lt;br /&gt;
&lt;br /&gt;
* Les pages habituellement référencées peuvent toujours apparaître dans les archives des moteurs de recherche Internet. Par exemple, ''1998results.asp'' peut ne plus être lié à un site web d'entreprise, mais cependant rester sur le serveur et dans les bases de données des moteurs de recherche. Ce vieux script peut contenir des vulnérabilités qui peuvent permettre de compromettre le site entier. L'opérateur de recherche Google ''site:'' peut être utilisé pour faire une recherche sur un seul domaine choisi, comme dans : ''site:www.example.com''. Utiliser les moteurs de recherche de cette façon a permis un large éventail de techniques que vous pourrez trouver utiles et qui sont décrites dans la section ''Google Hacking'' de ce Guide.&lt;br /&gt;
Lisez-le pour affûter vos compétences de test via Google. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ATTEntion : section Google Hacking non retrouvée --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegarde ne sont probablement pas référencés par d'autres fichiers et ainsi ne doivent pas avoir été indexés par Google mais s'ils se trouvent dans des répertoires accessibles par votre navigateur,le moteur de recherche peut en avoir connaissance.&lt;br /&gt;
&lt;br /&gt;
* De plus, Google et Yahoo conservent des versions en cache des pages trouvées par leurs robots. Même si ''1998results.asp'' a été supprimé du serveur cible, une version de ses résultats peut toujours être stockée par ces moteurs de recherche. Ces versions en cache peuvent contenir des références ou, des indices sur un autre contenu additionnel caché, qui existe toujours sur le serveur. &lt;br /&gt;
&lt;br /&gt;
* Du contenu, non référencé par une application cible, peut être lié à des sites web d'un tiers. Par exemple, une application qui gère les paiements en ligne pour le compte d'un site marchand peut contenir une diversité de fonctionnalités sur mesure qui ne doivent, normallement, être retrouvées qu'en suivant les liens des sites web de leurs clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Contournement du filtrage des noms de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Comme les filtres de liste noire sont basés sur des expressions régulières, on peut parfois profiter de fonctionnalités d'expansions opaques de noms de fichiers qui fonctionnent d'une façon que le éveloppeur n'imagine pas.&lt;br /&gt;
&lt;br /&gt;
Le testeur peut parfois exploiter la différence dans la façon dont les noms de fichiers sont analysés par l'application, le serveur web, et le système d'exploitation sous-jacent et ses conventions de nommage de fichiers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemple: Expansion des noms de fichiers sous Windows 8.3 &lt;br /&gt;
&amp;quot;c:\program files&amp;quot; devient &amp;quot;C:\PROGRA~1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
– Supprime les caractères incompatibles&lt;br /&gt;
– Convertit les espaces en caractère souligné bas &amp;quot;_&amp;quot;&lt;br /&gt;
- Prend les six premiers caractères du nom &lt;br /&gt;
– Ajoute “~&amp;lt;chiffre&amp;gt;” pour différencier les fichiers dont les noms ont les mêmes six premiers caractères &lt;br /&gt;
- Cette convention change après les 3 premières collisions de noms&lt;br /&gt;
– Tronque les extensions de fichiers à trois caractères&lt;br /&gt;
- Met tous les caractères en lettres majuscules &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Réaliser un test en boite grise sur les vieux fichiers et les fichiers de sauvegarde nécessite l'examen des fichiers contenus dans les répertoires appartenant à l'ensemble des répertoires Web servis par le(s) serveur(s) internet de l'infrastructure de l'application. Théoriquement, l'examen devrait être réalisé manuellement pour être exhaustif. &lt;br /&gt;
&lt;br /&gt;
Quoiqu'il en soit, comme la plupart du temps les copies ou les sauvegardes de fichiers utilisent les mêmes conventions de nommage, la recherche peut être effectuée facilement par script. Par exemple, les éditeurs nomment les copies de sauvegardes avec une extension reconnaissable et les humains tendent à les nommer en .old ou une autre extension similaire prédictible.&lt;br /&gt;
 &lt;br /&gt;
Uune bonne stratégie consiste à planifier une tâche de fond périodique à la recherche de fichiers avec des extensions qui les identifient comme de probables copies ou des sauvegardes de fichiers et à faire aussi des vérifications manuelles sur des périodes plus longues.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Les outils d'évaluation de vulnérabilités tendent à inclure des vérifications pour repérer les répertoires web avec des noms standard (tels que “admin”, “test”, “backup”, etc.), et à recenser tout répertoire web qui en autorise l'indexation. Si vous ne pouvez pas lister les répertoires, vous devriez essayer de vérifier les extensions probables des fichiers de sauvegarde. Regarder par exemple Nessus (http://www.nessus.org), Nikto2(http://www.cirt.net/code/nikto.shtml) ou les nouveaux dérivés Wikto (http://www.sensepost.com/research/wikto/), qui supportent les stratégies de base du Google Hacking.&lt;br /&gt;
&lt;br /&gt;
* Robots d'exploration du Web &amp;quot;spider tools&amp;quot;: &lt;br /&gt;
** wget (http://www.gnu.org/software/wget/, http://www.interlog.com/~tcharron/wgetwin.html); &lt;br /&gt;
** Sam Spade (http://www.samspade.org); &lt;br /&gt;
** Le proxy Spike comprend une fonction d'exploration de site web (http://www.immunitysec.com/spikeproxy.html); &lt;br /&gt;
** Xenu (http://home.snafu.de/tilman/xenulink.html); &lt;br /&gt;
** curl (http://curl.haxx.se). &lt;br /&gt;
Certains de ces outils sont compris en standard dans les distributions Linux.&lt;br /&gt;
  &lt;br /&gt;
* Les utilitaires de développement Web ont généralement des outils pour identifier les liens cassés et les fichiers non référencés.&lt;br /&gt;
&lt;br /&gt;
== Remédiation ==&lt;br /&gt;
&lt;br /&gt;
Pour garantir une stratégie de protection efficace, les tests doivent être complétés par une politique de sécurité qui interdit clairement des pratiques dangereuses telles que :&lt;br /&gt;
&lt;br /&gt;
* Editer des fichiers directement sur le serveur web ou sur le système de fichiers de l'application. C'est vraiment une mauvaise habitude car il est prévisible que les éditeurs génèrent des fichiers de backup non souhaités. C'est étonnant de voir comme c'est fréquent, même dans les grandes organisations. Si vous avez absolument besoin d'éditer un fichier sur un serveur de production, assurez-vous de n'y laisser que ce qui est explicitement nécessaire, et considérez que vous le faites à vos propres risques.&lt;br /&gt;
  &lt;br /&gt;
* Vérifier soigneusement toute autre activité réalisée sur le système de fichiers exposé par le serveur Web, telles que les activités d'administration. Par exemple, si vous avez ponctuellement besoin de faire une &amp;quot;copie instantanée&amp;quot; de quelques répertoires (ce que vous devriez pas faire en production), vous pouvez être tenté au préalable d'en faire un fichier zippé. &lt;br /&gt;
Faites attention de ne pas laisser l'archive derrière vous.&lt;br /&gt;
&lt;br /&gt;
* Une politique de gestion de configuration devrait permettre de ne pas laisser traîner des fichiers obsolètes ou non référencés.&lt;br /&gt;
&lt;br /&gt;
* Les applications devraient être concues pour ne pas créer (ou s'appuyer sur) des fichiers stockés sous l'arborescence de répertoires mis à disposition par le serveur Web. Les fichiers de données, de traces, de configuration, etc..., devraient être stockés dans des répertoires inaccessibles au serveur Web, pour contrer les possibilités de divulgation d'information (pour ne pas mentionner les modifications de données si les permissions sur les répertoires Web autorisent l'écriture).&lt;br /&gt;
&lt;br /&gt;
* Les &amp;quot;copies instantanées&amp;quot; ou &amp;quot;snapshot&amp;quot; de système de fichiers ne devraient pas être accessibles par le Web si l'emplacement du document est sur un système de fichiers utilisant cette technologie. &lt;br /&gt;
&lt;br /&gt;
Configurer votre serveur Web pour refuser l'accès à de tels répertoires, par exemple, sous Apache une directive &amp;lt;location&amp;gt;, comme indiqué ci-dessous, devrait être mise en place :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Location ~ &amp;quot;.snapshot&amp;quot;&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Guide_de_Test_v4-Annexe_B-Conseils_de_Lecture&amp;diff=201914</id>
		<title>OWASP Guide de Test v4-Annexe B-Conseils de Lecture</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Guide_de_Test_v4-Annexe_B-Conseils_de_Lecture&amp;diff=201914"/>
				<updated>2015-10-09T18:58:54Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Created page with &amp;quot;{{Template:OWASP Testing Guide v4}}  ==Livres Blancs==  * L'impact économique d'environnements de test logiciel inadéquats http://www.nist.gov/director/planning/upload/repor...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
==Livres Blancs==&lt;br /&gt;
&lt;br /&gt;
* L'impact économique d'environnements de test logiciel inadéquats http://www.nist.gov/director/planning/upload/report02-3.pdf&lt;br /&gt;
&lt;br /&gt;
* Publications du National Institute of Standards and Technology - http://csrc.nist.gov/publications/PubsSPs.html&lt;br /&gt;
&lt;br /&gt;
* Le Guide Projet de l'OWASP - https://www.owasp.org/index.php/Category:OWASP_Guide_Project&lt;br /&gt;
&lt;br /&gt;
* La Sécurité dans le Cycle de Vie du Développement des Systèmes (SDLC) par le NIST - http://www.nist.gov/customcf/get_pdf.cfm?pub_id=890097&lt;br /&gt;
&lt;br /&gt;
* Pratiques Fondamentales de Sécurité du Développement Logiciel - http://www.safecode.org/wp-content/uploads/2014/09/SAFECode_Dev_Practices0211.pdf&lt;br /&gt;
&lt;br /&gt;
* Assurance Logicielle: Bilan des meilleures pratiques de l'industrie en 2008 - http://www.safecode.org/publications/SAFECode_BestPractices0208.pdf&lt;br /&gt;
&lt;br /&gt;
* Assurance qualité du Logiciel  : séries Guides de Poche: https://buildsecurityin.us-cert.gov/swa/software-assurance-pocket-guide-series&lt;br /&gt;
(Voir en particulier Software Security Testing : Development, Vol III et Secure Coding Development, Vol VI - https://buildsecurityin.us-cert.gov/swa/software-assurance-pocket-guide-series#development)&lt;br /&gt;
&lt;br /&gt;
* Cas d'utilisation &amp;quot;Use Cases&amp;quot;: Les Questions Fréquemment Posées et les Réponses – http://www.ibm.com/developerworks/rational/library/content/RationalEdge/jan03/UseCaseFAQS_TheRationalEdge_Jan2003.pdf&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|broken link&lt;br /&gt;
* ''Web Application Security is Not an Oxy-Moron, par Mark Curphey'' - http://www.sbq.com/sbq/app_security/index.html&lt;br /&gt;
* ''The Security of Applications Reloaded'' - http://www.atstake.com/research/reports/acrobat/atstake_app_reloaded.pdf&lt;br /&gt;
* ''La Sécurité des Applications: Tout n'est pas équivalent&amp;quot; - http://www.securitymanagement.com/archive/library/atstake_tech0502.pdf&lt;br /&gt;
]]&lt;br /&gt;
* Améliorer la Sécurité des Applications Web : Menaces et Contre-Mesures - https://www.microsoft.com/en-us/download/details.aspx?id=1330&lt;br /&gt;
&lt;br /&gt;
==Livres==&lt;br /&gt;
&lt;br /&gt;
* The Art of Software Security Testing: Identifying Software Security Flaws, par Chris Wysopal, Lucas Nelson, Dino Dai Zovi, Elfriede Dustin, publié par Addison-Wesley, ISBN 0321304861 (2006)  &lt;br /&gt;
&lt;br /&gt;
* Building Secure Software: How to Avoid Security Problems the Right Way, par Gary McGraw and John Viega, publié par Addison-Wesley Pub Co, ISBN 020172152X (2002) - http://www.buildingsecuresoftware.com (broken link)&lt;br /&gt;
&lt;br /&gt;
* The Ethical Hack: A Framework for Business Value Penetration Testing, par James S. Tiller, Auerbach Publications, ISBN 084931609X (2005)&lt;br /&gt;
*+ Version en ligne: http://books.google.com/books?id=fwASXKXOolEC&amp;amp;printsec=frontcover&amp;amp;source=gbs_ge_summary_r&amp;amp;cad=0#v=onepage&amp;amp;q&amp;amp;f=false&lt;br /&gt;
&lt;br /&gt;
* Exploiting Software: How to Break Code, par Gary McGraw and Greg Hoglund, publié par Addison-Wesley Pub Co, ISBN 0201786958 (2004) -http://www.exploitingsoftware.com &lt;br /&gt;
&lt;br /&gt;
* The Hacker's Handbook: The Strategy behind Breaking into and Defending Networks, par Susan Young, Dave Aitel, Auerbach Publications, ISBN: 0849308887 (2005)&lt;br /&gt;
*+ version en ligne: http://books.google.com/books?id=AO2fsAPVC34C&amp;amp;printsec=frontcover&amp;amp;source=gbs_ge_summary_r&amp;amp;cad=0#v=onepage&amp;amp;q&amp;amp;f=false&lt;br /&gt;
&lt;br /&gt;
* Hacking Exposed: Web Applications 3, par Joel Scambray, Vinvent Liu, Caleb Sima, publié par McGraw-Hill Osborne Media, ISBN 007222438X (2010) - http://www.webhackingexposed.com/&lt;br /&gt;
&lt;br /&gt;
* The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws, 2nd Edition - publié par Dafydd Stuttard, Marcus Pinto, ISBN  9781118026472 (2011)&lt;br /&gt;
&lt;br /&gt;
* How to Break Software Security, par James Whittaker, Herbert H. Thompson, publié par Addison Wesley, ISBN 0321194330 (2003)  &lt;br /&gt;
&lt;br /&gt;
* How to Break Software: Functional and Security Testing of Web Applications and Web Services, par Make Andrews, James A. Whittaker, publié par Pearson Education Inc., ISBN 0321369440 (2006)  &lt;br /&gt;
&lt;br /&gt;
* Innocent Code: A Security Wake-Up Call for Web Programmers, par Sverre Huseby, publié par John Wiley &amp;amp; Sons, ISBN 0470857447(2004) - http://innocentcode.thathost.com &lt;br /&gt;
*+ Version en ligne : http://books.google.com/books?id=RjVjgPQsKogC&amp;amp;printsec=frontcover&amp;amp;source=gbs_ge_summary_r&amp;amp;cad=0#v=onepage&amp;amp;q&amp;amp;f=false&lt;br /&gt;
&lt;br /&gt;
* Mastering the Requirements Process, par Suzanne Robertson and James Robertson, publié par Addison-Wesley Professional, ISBN 0201360462  &lt;br /&gt;
*+ Version en ligne : http://books.google.com/books?id=SN4WegDHVCcC&amp;amp;printsec=frontcover&amp;amp;source=gbs_ge_summary_r&amp;amp;cad=0#v=onepage&amp;amp;q&amp;amp;f=false&lt;br /&gt;
&lt;br /&gt;
* Secure Coding: Principles and Practices, par Mark Graff and Kenneth R. Van Wyk, publié par O’Reilly, ISBN 0596002424 (2003) - http://www.securecoding.org &lt;br /&gt;
&lt;br /&gt;
* Secure Programming for Linux and Unix HOWTO, David Wheeler (2004) http://www.dwheeler.com/secure-programs &lt;br /&gt;
*+ Version en ligne : http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/index.html&lt;br /&gt;
&lt;br /&gt;
* Securing Java, par Gary McGraw, Edward W. Felten, publié par Wiley, ISBN 047131952X (1999) - http://www.securingjava.com&lt;br /&gt;
*+ Version en ligne : http://www.securingjava.com/toc.html&lt;br /&gt;
&lt;br /&gt;
* Software Security: Building Security In, par Gary McGraw, publié par Addison-Wesley Professional, ISBN 0321356705 (2006)  &lt;br /&gt;
&lt;br /&gt;
* Software Testing In The Real World (Acm Press Books) par Edward Kit, publié par Addison-Wesley Professional, ISBN 0201877562 (1995) &lt;br /&gt;
&lt;br /&gt;
* Software Testing Techniques, 2nd Edition, par Boris Beizer, International Thomson Computer Press, ISBN 0442206720 (1990)&lt;br /&gt;
&lt;br /&gt;
* The Tangled Web: A Guide to Securing Modern Web Applications, par Michael Zalewski, publié par No Starch Press Inc., ISBN 047131952X (2011)  &lt;br /&gt;
&lt;br /&gt;
* The Unified Modeling Language – A User Guide – par Grady Booch, James Rumbaugh, Ivar Jacobson, publié par Addison-Wesley Professional, ISBN 0321267974 (2005)&lt;br /&gt;
&lt;br /&gt;
* The Unified Modeling Language User Guide, par Grady Booch, James Rumbaugh, Ivar Jacobson, Ivar publié par Addison-Wesley Professional, ISBN 0-201-57168-4 (1998) &lt;br /&gt;
&lt;br /&gt;
* Web Security Testing Cookbook: Systematic Techniques to Find Problems Fast, par Paco Hope, Ben Walther, publié par O’Reilly, ISBN 0596514832 (2008)&lt;br /&gt;
&lt;br /&gt;
* Writing Secure Code, de Mike Howard et David LeBlanc, publié par Microsoft Press, ISBN 0735617228 (2004) https://www.microsoftpressstore.com/store/writing-secure-code-9780735617223&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sites Web utiles==&lt;br /&gt;
&lt;br /&gt;
* Construire la Sécurité du Logiciel par le Département de la Sécurité Intérieure U.S.- https://buildsecurityin.us-cert.gov/&lt;br /&gt;
&lt;br /&gt;
* Construire la Sécurité du Logiciel – Bibliographie Dédiée Sécurité - https://buildsecurityin.us-cert.gov/articles/best-practices/measurement/security-specific-bibliography&lt;br /&gt;
&lt;br /&gt;
* Programmation Sécurisée par le CERT U.S.- http://www.cert.org/secure-coding/&lt;br /&gt;
&lt;br /&gt;
* Standards de Programmation Sécurisée par le CERT U.S. - https://www.securecoding.cert.org/confluence/display/seccode/CERT+Secure+Coding+Standards&lt;br /&gt;
&lt;br /&gt;
* Bases de Données d'Exploits et de Vulnérabilités - https://buildsecurityin.us-cert.gov/swa/database.html&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|broken link&lt;br /&gt;
*''Google Code University – Web Security'' - http://code.google.com/edu/security/index.html&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
* Publications Foundstone par McAfee- http://www.mcafee.com/fr/services/mcafee-foundstone-practice.aspx?view=legacy&lt;br /&gt;
&lt;br /&gt;
* Bibliothèque de Ressources par McAfee - http://www.mcafee.com/apps/resource-library-search.aspx?region=us&lt;br /&gt;
&lt;br /&gt;
* Outils Libres par McAfee - http://www.mcafee.com/us/downloads/free-tools/index.aspx&lt;br /&gt;
&lt;br /&gt;
* Sécurité des Applications Web par OASIS (WAS) TC — http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=was&lt;br /&gt;
&lt;br /&gt;
* Outils de Test Logiciel Open Source - http://www.opensourcetesting.org/security.php&lt;br /&gt;
&lt;br /&gt;
* Blitz Sécurité par l'OWASP - https://www.owasp.org/index.php/OWASP_Security_Blitz&lt;br /&gt;
&lt;br /&gt;
* Phoenix/Outils par l'OWASP - https://www.owasp.org/index.php/Phoenix/Tools&lt;br /&gt;
&lt;br /&gt;
* Internet Storm Center (ISC) par SANS : Alertes, Outils et Podcasts - https://www.isc.sans.edu&lt;br /&gt;
&lt;br /&gt;
* Le Projet Open Web Application Application Security Project (OWASP) — http://www.owasp.org &lt;br /&gt;
&lt;br /&gt;
* Aide-Mémoire du Pen Test par Pentestmonkey - http://pentestmonkey.net/cheat-sheet&lt;br /&gt;
&lt;br /&gt;
* Lignes Directrices de Programmation Sécurisée en .NET Framework 4.6 et 4.5 - http://msdn.microsoft.com/en-us/library/8a3x2b7f.aspx&lt;br /&gt;
&lt;br /&gt;
* Sécurité de la Plateforme Java - https://docs.oracle.com/javase/8/docs/technotes/guides/security/overview/jsoverview.html&lt;br /&gt;
&lt;br /&gt;
* Institut de Formation Sécurité, Système et Réseaux (SANS) - http://www.sans.org &lt;br /&gt;
&lt;br /&gt;
* Donner du Sens à la Sécurité par Technical INFO : livres blancs, outils et blog - http://www.technicalinfo.net/index.html&lt;br /&gt;
&lt;br /&gt;
* Consortium pour la Sécurité des Applications Web - http://www.webappsec.org/projects/&lt;br /&gt;
(voir Liste des scanners de sécurité des Applications Web - http://projects.webappsec.org/w/page/13246988/Web%20Application%20Security%20Scanner%20List)&lt;br /&gt;
&lt;br /&gt;
* Web Security – Articles - http://www.acunetix.com/websitesecurity/articles/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vidéos ==&lt;br /&gt;
&lt;br /&gt;
* Séries de Tutoriels AppSec de l'OWASP - https://www.owasp.org/index.php/OWASP_Appsec_Tutorial_Series#tab=Episode_List &lt;br /&gt;
&lt;br /&gt;
* SecurityTube - http://www.securitytube.net/&lt;br /&gt;
&lt;br /&gt;
* Vidéos par Imperva - http://www.imperva.com/resources/videos.asp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Applications Web Intentionnellement Non Sécurisées ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Répertoire de Projets d'Applications Web Vulnérables par l'OWASP - https://www.owasp.org/index.php/OWASP_Vulnerable_Web_Applications_Directory_Project#tab=Main&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|broken link&lt;br /&gt;
* ''BadStore - http://badstore.net'' &amp;lt;!-- https://www.vulnhub.com/entry/badstore-123,41/#download ? --&amp;gt;&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
* De Maudites Applications Web Vulnérables - Damn Vulnerable Web Application (DVWA) : http://dvwa.co.uk/ &lt;br /&gt;
&lt;br /&gt;
* Séries Hacme de McAfee:&lt;br /&gt;
&lt;br /&gt;
* + Hacme Travel - http://www.mcafee.com/us/downloads/free-tools/hacmetravel.aspx&lt;br /&gt;
[[Category:FIXME|broken link&lt;br /&gt;
* ''+ Hacme Bank'' - http://www.mcafee.com/us/downloads/free-tools/hacme-bank.aspx ???&lt;br /&gt;
]]&lt;br /&gt;
* + Hacme Shipping - http://www.mcafee.com/us/downloads/free-tools/hacmeshipping.aspx&lt;br /&gt;
&lt;br /&gt;
* + Hacme Casino - http://www.mcafee.com/us/downloads/free-tools/hacme-casino.aspx&lt;br /&gt;
&lt;br /&gt;
* + Hacme Books - http://www.mcafee.com/us/downloads/free-tools/hacmebooks.aspx&lt;br /&gt;
&lt;br /&gt;
* Moth - http://www.bonsai-sec.com/en/research/moth.php &lt;br /&gt;
&lt;br /&gt;
* Mutillidae - http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberately-vulnerable-php-owasp-top-10&lt;br /&gt;
&lt;br /&gt;
* SecuriBench par l'Université Stanford - http://suif.stanford.edu/~livshits/securibench/&lt;br /&gt;
&lt;br /&gt;
* Vicnum - http://vicnum.sourceforge.net/ and http://www.owasp.org/index.php/Category:OWASP_Vicnum_Project &lt;br /&gt;
&lt;br /&gt;
* WebGoat de l'OWASP - http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project&lt;br /&gt;
&lt;br /&gt;
* WebMaven (dit Buggy Bank) - http://www.mavensecurity.com/WebMaven.php&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201913</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201913"/>
				<updated>2015-10-09T18:57:37Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management, Asset Security,&lt;br /&gt;
Security Engineering, Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP TEN 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP 10 2013 en Français]&amp;lt;br /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP Testing Guide v4» :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.4 Revue des fichiers pour recherche d'informations sensibles (OTG-CONFIG-004)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.5.8 Test de Questions-Reponses Faibles (OTG-AUTHN-008)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[OWASP Guide de Test v4-Annexe B-Conseils de Lecture]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.5.8_Test_de_Questions-Reponses_Faibles_(OTG-AUTHN-008)&amp;diff=201796</id>
		<title>4.5.8 Test de Questions-Reponses Faibles (OTG-AUTHN-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.5.8_Test_de_Questions-Reponses_Faibles_(OTG-AUTHN-008)&amp;diff=201796"/>
				<updated>2015-10-07T13:34:41Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Created page with &amp;quot;{{Template:OWASP Testing Guide v4}}   == Sommaire ==  Souvent appelée &amp;quot;question secrète&amp;quot;, les questions et les réponses de sécurité sont souvent utilisées pour la récup...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
&lt;br /&gt;
Souvent appelée &amp;quot;question secrète&amp;quot;, les questions et les réponses de sécurité sont souvent utilisées pour la récupération de mots de passe oubliés ou comme un complément de sécurité en plus du mot de passe.&lt;br /&gt;
(Voir [[Testing for weak password change or reset functionalities (OTG-AUTHN-009)]]).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Elles sont habituellement générées à la création du compte et nécessitent que l'utilisateur choisisse l'une des questions prédéfinies et renseigne la réponse correspondante.&lt;br /&gt;
Parfois, il est possible que l'utilisateur puisse proposer sa propre question et sa réponse. &lt;br /&gt;
Les deux méthodes sont sujettes à des risques de sécurité.&lt;br /&gt;
&lt;br /&gt;
Dans l'idéal, ces questions secrètes devraient correspondre à des réponses connues seulement de l'utilisateur et ne pas pouvoir être découvertes ou devinées par n'importe qui.&lt;br /&gt;
C'est plus difficile que ça en a l'air.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les questions et réponses de sécurité reposent sur le secret de la réponse. Les questions et réponses devraient être choisies afin que seul le titulaire du compte sache y répondre.&lt;br /&gt;
Cependant, bien que beaucoup de réponses puissent ne pas être publiquement connues, la plupart des questions, que les sites web implémentent et mettent en avant, sont des réponses pseudo-privées.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Questions prédéfinies :'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
La majorité des questions prédéfinies sont passablement simples par nature et peuvent conduire à des réponses sans sécurité. &lt;br /&gt;
&lt;br /&gt;
Par exemple:&lt;br /&gt;
&lt;br /&gt;
* Les réponses peuvent être connues par les membres de la famille ou des amis proches de l'utilisateur, ex. &amp;quot;Quel le nom de jeune fille de votre mère?&amp;quot;, &amp;quot;Quelle est votre date de naissance?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Les réponses peuvent être facilement imaginées, ex. &amp;quot;Quelle est votre couleur préférée?&amp;quot;, &amp;quot;Quelle est votre équipe de base-ball favorite?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Les réponses peuvent être trouvées par force brute, ex. &amp;quot;Quel est le prénom de votre enseignant préféré dans le secondaire?&amp;quot; - La réponse est probablement dans une liste de prénoms courants,&lt;br /&gt;
facilement téléchargeable, et peut permettre de réaliser une simple attaque par brute force avec un script.&lt;br /&gt;
&lt;br /&gt;
* Les réponses peuvent être publiques, ex. &amp;quot;Quel est votre film préféré?&amp;quot; - la réponse peut être trouvée facilement sur la page de profil des réseaux sociaux de l'utilisateur.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Questions auto-générées:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
La difficulté de permettre aux utilisateurs de générer leur propre question est que cela leur laisse la possibilité de générer des questions absolument pas sûres, ou même de contourner&lt;br /&gt;
complètement la procédure concernant la question de sécurité. &lt;br /&gt;
&lt;br /&gt;
Voici quelques exemples du monde réel qui illustrent ce point:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Combien font 1+1?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Quel est votre username?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Mon mot de passe est M3@t$p1N&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comment Tester ==&lt;br /&gt;
&lt;br /&gt;
'''Test des questions prédéfinies faibles :'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Essayer d'obtenir la liste des questions de sécurité en créant un nouveau compte ou en suivant le lien de type “J'ai oublié mon mot de passe”. &lt;br /&gt;
&lt;br /&gt;
Essayer de générer le plus de questions possibles pour avoir une idée du type de questions posées. Si l'une des questions de sécurité se retrouve&lt;br /&gt;
dans l'une des catégories citées plus haut, alors elles sont vulnérables à une attaque (conjecture, force brute, disponible sur les réseaux sociaux, etc.).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Test des questions auto-générées faibles:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Essayer de créer des questions de sécurité en créant un nouveau compte ou, en reconfigurant les propriétés de récupération du mot de passe de votre compte existant. &lt;br /&gt;
Si le système permet à l'utilisateur de générer ses propres questions de sécurité alors il est vulnérable au fait de pouvoir créer des questions non sûres. &lt;br /&gt;
Si le système utilise les questions de sécurité auto-générées pendant la procédure de récupération du mot de passe et si les comptes utilisateur peuvent être énumérés&lt;br /&gt;
alors il sera facile pour le testeur de lister quelques questions auto-générées. (voir [[Testing for Account Enumeration and Guessable User Account (OTG-IDENT-004)]])&lt;br /&gt;
On devrait ainsi trouver plusieurs questions auto-générées faibles avec cette méthode.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Test des réponses par force brute:'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Utiliser les méthodes décrites dans [[Testing for Weak lock out mechanism (OTG-AUTHN-003)]] pour déterminer si plusieurs réponses incorrectes à la question générent un blocage du compte.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
La première chose à prendre en compte, lorsqu'on essaie d'exploiter les questions de sécurité, est le nombre de questions auxquelles il faut répondre. &lt;br /&gt;
La plupart des applications ne demandent à l'utilisateur qu'une réponse à une seule question tandis que quelques applications critiques peuvent nécessiter que l'utilisateur réponde&lt;br /&gt;
à deux questions, voire plusieurs.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
L'étape suivante consiste à évaluer la robustesse des questions de sécurité. Est-ce que les réponses peuvent être obtenues par une simple recherche Google ou par une attaque d'ingénierie sociale?&lt;br /&gt;
&lt;br /&gt;
Pour faire un test d'intrusion, voilà ce qu'il faut réaliser, étape par étape, pour exploiter la procédure de la question secrète:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* L'application permet-elle à l'utilisateur final de choisir la question à laquelle il devra répondre? Si oui, se concentrer sur les questions dont la réponse est de type :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
** Une réponse “publique”; par exemple, quelque-chose qu'on peut trouver avec une simple requête à un moteur de recherche.&lt;br /&gt;
** Une réponse factuelle telle que la &amp;quot;première école&amp;quot; ou autres faits qui peuvent faire l'objet d'une recherche.&lt;br /&gt;
** Un petit éventail de réponses possibles, comme pour “quel était le modèle de votre première voiture”. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ce type de questions donnera au testeur une courte liste de réponses possibles et, sur la base de statistiques, l'attaquant pourra les classer de la plus probable à la moins probable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Determiner si possible combien d'essais sont autorisés.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
** La procédure de récupération du mot de passe permet-elle des essais illimités?&lt;br /&gt;
&lt;br /&gt;
** Y-a-t-il une période de blocage après X réponses incorrectes? &lt;br /&gt;
Garder à l'esprit que le système de blocage peut présenter un problème de sécurité par lui-même puisqu'il peut être exploité par un attaquant pour effectuer un Déni de Service contre des utilisateurs légitimes.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Prendre la question appropriée, basée sur l'analyse des points précédents, et faire une recherche pour déterminer la réponse la plus probable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La clef du succès pour exploiter et contourner la procédure des questions secrètes faibles est de trouver une question, ou un jeu de questions, qui donne(nt) la possibilité de trouver facilement les réponses&lt;br /&gt;
Rechercher toujours les questions qui vous donneront la plus grance chance statistique d'en deviner la réponse, si vous n'avez aucune idée des réponses. &lt;br /&gt;
Au final, la procédure des questions de sécurité est aussi forte que sa question la plus faible.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Références ==&lt;br /&gt;
[https://www.schneier.com/essays/archives/2005/02/the_curse_of_the_sec.html The Curse of the Secret Question]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201795</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201795"/>
				<updated>2015-10-07T13:31:54Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management, Asset Security,&lt;br /&gt;
Security Engineering, Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP TEN 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP 10 2013 en Français]&amp;lt;br /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the OWASP Testing Guide v4 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.4 Revue des fichiers pour recherche d'informations sensibles (OTG-CONFIG-004)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.5.8 Test de Questions-Reponses Faibles (OTG-AUTHN-008)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=201775</id>
		<title>4.3.4 Revue des fichiers pour recherche d'informations sensibles (OTG-CONFIG-004)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=201775"/>
				<updated>2015-10-06T19:32:42Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alors que la plupart des fichiers d’un serveur web sont stockés sur le serveur lui-même, il n’est pas inhabituel d’y trouver des fichiers sans référence,&lt;br /&gt;
ou oubliés, qui permettent d’obtenir des informations sensibles sur l’infrastructure ou, même, des justificatifs d’accès. &lt;br /&gt;
&lt;br /&gt;
Le plus souvent, on retrouve des anciennes versions de fichiers modifiés, renommés en «.old », la mention de fichiers qui sont chargés suivant le choix du&lt;br /&gt;
langage et qui peuvent être téléchargés comme source, ou même des sauvegardes automatiques, ou manuelles, telles que des archives compressées. Des fichiers&lt;br /&gt;
de sauvegarde peuvent aussi être générés automatiquement par le système de fichiers sur lequel l’application est hébergée, une fonction habituellement &lt;br /&gt;
appelée &amp;quot;copie instantanée&amp;quot; ou &amp;quot;snapshot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tous ces fichiers peuvent permettre au testeur d’accéder au fonctionnement interne, aux portes dérobées, aux interfaces d’administration, ou même aux comptes&lt;br /&gt;
privilégiés permettant les accès administrateur et aux bases de données. &lt;br /&gt;
&lt;br /&gt;
Il y a une source importante de vulnérabilités dans les fichiers n’ayant aucun lien avec l’application mais ayant été générés par l’édition de fichiers&lt;br /&gt;
d’application, ou issus de copies de sauvegarde instantanées, ou fichiers anciens ou non référencés laissés dans l’arborescence du serveur web. &lt;br /&gt;
Editer des fichiers sur le serveur de production ou, y faire d’autres actions de type administrateur, peut y laisser malencontreusement des copies de sauvegarde&lt;br /&gt;
ou des fichiers générés par l’édition de fichiers, ou par l’administrateur créant un fichier zippé d’un ensemble de fichiers pour faire une sauvegarde. &lt;br /&gt;
&lt;br /&gt;
C’est facile d’oublier de tels fichiers et cela peut présenter de sérieuses menaces de sécurité pour l’application. &lt;br /&gt;
Cela arrive parce que les copies de sauvegarde peuvent générer des extensions de sauvegarde différentes des fichiers originaux. &lt;br /&gt;
Une archive .tar, .zip ou .gz que nous générons (et oublions) a, bien sûr, une extension différente, et il arrive la même chose&lt;br /&gt;
avec les copies générées par plusieurs éditeurs (par exemple, emacs génère une copie de sauvegarde nommée ''file~'' lorsqu’on édite ''file''). &lt;br /&gt;
Une copie manuelle peut aboutir au même effet (comme copier ''file'' en ''file.old''). Le système de fichier sous-jacent peut faire des «copies instantanées»&lt;br /&gt;
de vos applications, à différents moments, sans que vous le sachiez, et ils peuvent être accessibles par le web, ce qui présente une menace de type &lt;br /&gt;
«fichiers de sauvegarde», différente mais similaire, pour votre application.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ces activités peuvent générer des fichiers non nécessaires à l’application qui peuvent être utilisés différemment des fichiers originaux par le serveur web. Par exemple, si nous faisons une copie du fichier ''login.asp'' vers ''login.asp.old'', nous permettons aux utilisateurs de télécharger le code source de ''login.asp''. Ceci parce ''login.asp.old'' sera habituellement ouvert comme un fichier texte ou brut plutôt qu’exécuté à cause de son extension. &lt;br /&gt;
&lt;br /&gt;
En d’autres mots, l’accès au fichier ''login.asp'' entraîne l’exécution sur le serveur du code ''login.asp'' tandis que l’accès au fichier ''login.asp.old'' entraîne le contenu du fichier ''login.asp.old'' (qui est, là aussi, le code du serveur) à être affiché clairement sur le navigateur de l’utilisateur. Cela présente des risques de sécurité puisque des informations de sécurité peuvent ainsi être révélées.&lt;br /&gt;
&lt;br /&gt;
Généralement, exposer le code du serveur n’est pas une bonne idée. Non seulement, vous exposez inutilement la logique de l’entreprise mais vous pouvez divulguer sans le savoir des informations relatives à l’application qui peuvent aider l’attaquant (chemin d’accès, structures des données, etc...). &lt;br /&gt;
&lt;br /&gt;
Ceci sans mentionner le fait qu’on trouve beaucoup trop de scripts avec des comptes et mots de passe en clair (ce qui est une pratique imprudente et dangereuse).&lt;br /&gt;
&lt;br /&gt;
D’autres causes de fichiers non référencés sont dues aux choix d’architecture et de configuration quand ceux-ci permettent au serveur web d’accéder à toutes sortes de fichiers relatifs à l’application tels que des fichiers de données, de configuration, de logs stockés dans des répertoires du système de fichier. &lt;br /&gt;
&lt;br /&gt;
Ces fichiers n’ont normalement rien à faire dans l’espace du système de fichiers accessible par le web puisqu’ils ne devraient être accessibles qu’au niveau de l’application, par l’application elle-même (et non par un utilisateur occasionnel qui navigue autour).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menaces ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegardes et, les fichiers anciens ou non référencés, représentent diverses menaces à la sécurité d’une application web :&lt;br /&gt;
&lt;br /&gt;
* Les fichiers non référencés peuvent dévoiler des informations sensibles qu peuvent faciliter une attaque ciblée d’une application ; par exemple cela comprend les bases de données de justificatifs d’accès, les fichiers de configuration contenant des références à des contenus cachés, chemins d’accès complets, etc...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Des pages non référencées peuvent contenir de puissantes fonctionnalités pouvant être utilisées pour attaquer l’application ; par exemple une page d’administration non publiée mais qui peut être accédée par n’importe quel utilisateur qui sait où la trouver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* D’anciens fichiers ou des fichiers de sauvegarde peuvent contenir des vulnérabilités qui ont été corrigées dans des versions plus récentes ; par exemple ''viewdoc.old.jsp'' peu contenir une vulnérabilité de type «traversée de répertoires» ou &amp;quot;Path Traversal&amp;quot; qui a été corrigée dans ''viewdoc.jsp'' mais peut toujours être exploitée par celui qui trouve cette vieille version. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent dévoiler le code source des pages prévues pour être exécutées sur le serveur ; par exemple, ouvrir ''viewdoc.bak'' peut renvoyer le code source de ''viewdoc.jsp'', qui peut être analysé pour en rechercher les vulnerabilités qui seraient difficiles à trouver en faisant des requêtes à l’aveugle vers la page exécutable. Alors que cette menace s’applique évidemment au langages de script, tels que Perl, PHP, ASP, shell scripts, JSP, etc., cela ne se limite pas à eux seuls, comme nous le verrons dans l’exemple du prochain paragraphe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent contenir des copies de tous les fichiers sous la racine (ou même en dehors) du site web. Cela permet à l’attaquant de rapidement énumérer l’application entière, dont les pages non référérencées, le code source, les fichiers inclus, etc... par exemple, si vous avez oublié un fichier nommé ''myservlets.jar.old'' qui contient (une copie de sauvegarde de) vos classes de servlet implémentées, vous exposez beaucoup d’informations sensibles pouvant faire l’objet de décompilation ou de rétro-ingénierie. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Dans certains cas, éditer ou copier un fichier ne modifie pas l’extension de fichier mais modifie le nom du fichier. Cela arrive, par exemple dans les environnements Windows, où les opérations de copie de fichier génèrent des fichiers suffixés avec «-Copie» ou des versions locales de cette chaîne. Puisque l’extension de fichier reste inchangée, ce n’est pas le cas où le fichier exécutable est renvoyé comme texte en clair par le serveur web, donc pas un cas de divulgation de code source. Malgré tout, ces fichiers aussi sont dangereux car il y a une possibilité qu’ils contiennent une logique incorrecte ou obsolète et peuvent, s'ils sont accédés, déclencher des erreurs d’application, qui donnent de précieuses informations à l’attaquant, si le message d’erreur s’affiche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les fichiers journaux peuvent contenir des informations sensibles à propos des usages de l’application par les utilisateurs, par exemple les données sensibles passées en paramètre aux URL, les ID de session, les URL visités (qui peuvent divulguer d’autres contenus non référencés), etc... D’autres fichiers journaux (ex. les journaux ftp) peuvent contenir des informations sensibles à propos de la maintenance de l’application par les administrateurs système.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les copies instantanées de système de fichiers peuvent contenir des copies de code ayant des vulnérabilités corrigées dans les versions plus récentes. Par exemple, ''/.snapshot/monthly.1/view.php'' peut contenir une vulnérabilité de type « traversée de répertoire » qui a été corrigée dans ''/view.php'' mais qui peut toujours être exploitée par celui qui trouve la vieille version du fichier. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester==&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
Le test des fichiers non référencés utilise à la fois des techniques manuelles et automatiques et typiquement combine les suivantes : &lt;br /&gt;
&lt;br /&gt;
==== Déductions du schéma de nommage du contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Dénombrer toutes les pages et les fonctionnalités de l’application. Cela peut être fait manuellement avec un navigateur ou en utilisant un outil d’exploration (« spidering ») d’application. La plupart des applications utilisent un schéma de nommage identifiable, et organisent les ressources en pages et répertoires en utilisant des mots décrivant leurs fonctions. A partir du schéma de nommage utilisé pour le contenu publié, il est souvent possible d’en déduire le nom et l’emplacement des fichiers non référencés. Par exemple, si on trouve une page ''viewuser.asp'', alors il faut chercher ''edituser.asp'',''adduser.asp'' et ''deleteuser.asp''. Si on trouve un répertoire ''/app/user'', il faut aussi chercher ''/app/admin'' et ''/app/manager''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Autres indices dans le contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Beaucoup d’applications web laissent des indices dans leur contenu publié qui peuvent conduire à découvrir des fonctionnalités ou des pages cachées. Ces indices se retrouvent souvent dans le code source HTML et dans les fichiers JavaScript. Le code source de tous les contenus publiés devrait être revu manuellement pour identifier les indices laissés concernant les fonctionnalités et les pages.&lt;br /&gt;
Par exemple : &lt;br /&gt;
&lt;br /&gt;
Les commentaires et les sections commentées du code source par les programmeurs peuvent faire référence à du contenu caché : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;A HREF=&amp;quot;uploadfile.jsp&amp;quot;&amp;gt;Upload a document to the server&amp;lt;/A&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Link removed while bugs in uploadfile.jsp are fixed          --&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScript peut contenir des liens sur des pages qui sont uniquement émises dans l’interface graphique de l’utilisateur dans certaines circonstances : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var adminUser=false;&lt;br /&gt;
:&lt;br /&gt;
if (adminUser) menu.add (new menuItem (&amp;quot;Maintain users&amp;quot;, &amp;quot;/admin/useradmin.jsp&amp;quot;)); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les pages HTML peuvent contenir des FORMs qui ont été cachées en désactivant l’élément SUBMIT : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FORM action=&amp;quot;forgotPassword.jsp&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;INPUT type=&amp;quot;hidden&amp;quot; name=&amp;quot;userID&amp;quot; value=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;lt;INPUT type=&amp;quot;submit&amp;quot; value=&amp;quot;Forgot Password&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre source d’indices concernant les répertoires non référencés est le fichier ''/robots.txt'', fichier utilisé pour donner des instructions aux robots d’indexation du web : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User-agent: *&lt;br /&gt;
Disallow: /Admin&lt;br /&gt;
Disallow: /uploads&lt;br /&gt;
Disallow: /backup&lt;br /&gt;
Disallow: /~jbloggs&lt;br /&gt;
Disallow: /include &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Recherche à l'aveugle ====&lt;br /&gt;
&lt;br /&gt;
Dans sa forme la plus simple, il s'agit de lancer une recherche de noms de fichiers usuels via un moteur de requêtes dans le but de deviner quels sont les fichiers et les répertoires existant sur le serveur.&lt;br /&gt;
Ce &amp;quot;wrapper&amp;quot; script netcat lira une liste de mots à partir de stdin et réalisera une attaque élémentaire par conjecture ou &amp;quot;guessing attack&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
server=www.targetapp.com&lt;br /&gt;
port=80&lt;br /&gt;
&lt;br /&gt;
while read url&lt;br /&gt;
do&lt;br /&gt;
echo -ne &amp;quot;$url\t&amp;quot;&lt;br /&gt;
echo -e &amp;quot;GET /$url HTTP/1.0\nHost: $server\n&amp;quot; | netcat $server $port | head -1&lt;br /&gt;
done | tee outputfile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suivant la configuration du serveur, on pourra remplacer la commande GET par une commande HEAD pour avoir des résultats plus rapides. On pourra ensuite faire une commande grep sur le fichier de sortie pour y rechercher des codes de réponse “interessants”. Le code de réponse &amp;quot;200&amp;quot; (OK) indique habituellement qu'une ressource valide a été trouvée (a priori, un serveur ne renvoie pas une page “not found” avec un code &amp;quot;200&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Rechercher aussi les codes &amp;quot;301&amp;quot; (Déplacé), &amp;quot;302&amp;quot; (Trouvé), &amp;quot;401&amp;quot; (Non autorisé), &amp;quot;403&amp;quot; (Interdit) and 500 (Erreur Interne), qui peuvent aussi référencer des ressources et des répertoires qui méritent plus d'investigation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'attaque élémentaire par conjecture doit s'effectuer sur le répertoire racine du serveur, le &amp;quot;webroot&amp;quot;, et aussi sur tous les répertoires identifiés par d'autres méthodes d'énumeration. &lt;br /&gt;
Des attaques par conjecture, plus avancées et efficaces, peuvent être réalisées comme ceci: &lt;br /&gt;
&lt;br /&gt;
* Identifier les extensions de fichiers utilisées dans les espaces connus de l'application (ex. jsp, aspx, html), et prendre une liste de mots de base ajoutés à ces extensions ou prendre une plus longue liste des extensions communes si les ressources le permettent). &lt;br /&gt;
&lt;br /&gt;
* Pour chaque fichier identifié par d'autres techniques d'énumeration, créer une liste de mots personnalisés dérivés du nom de fichier. &lt;br /&gt;
Prendre une liste des extensions de fichier usuels (incluant les ~, bak, txt, src, dev, old, inc, orig, copy, tmp, etc.) et utiliser chaque extension avant, après, et à la place de l'extension actuelle du fichier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Les opérations de copie de fichiers Windows generent des noms de fichiers postfixés par “-Copie“ ou par des versions localisées de cette chaîne, mais ne change pas l'extension du fichier. &lt;br /&gt;
Quoique les fichiers “-Copie“ ne divulguent pas habituellement le source code quand on y accède, ils peuvent néanmoins apporter des informations sensibles dans le cas où ils génèrent des erreurs quand on y accède.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Informations obtenues grâce aux vulnérabilités et aux mauvaises configurations du serveur ====&lt;br /&gt;
&lt;br /&gt;
Le cas le plus flagrant où une mauvaise configuration du serveur peut divulguer des pages non référencées est l'énumération des répertoires. &lt;br /&gt;
Rechercher dans tous les répertoires énumérés pour identifier ceux qui listent des répertoires. &lt;br /&gt;
&lt;br /&gt;
On trouve de nombreuses vulnerabilités sur des serveurs web personnels qui permettent aux attaquants de lister du contenu non référencé, comme par exemple: &lt;br /&gt;
&lt;br /&gt;
* Apache ?M=D directory listing vulnerability.&lt;br /&gt;
* Various IIS script source disclosure vulnerabilities. &lt;br /&gt;
* IIS WebDAV directory listing vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Utilisation de l'information accessible au public ====&lt;br /&gt;
&lt;br /&gt;
Les pages et les fonctionnalités, des applications web sur Internet, qui ne sont pas référencées par l'application elle-même peuvent être référencées par d'autres sources du domaine public. &lt;br /&gt;
Il existe plusieurs sources de ces références : &lt;br /&gt;
&lt;br /&gt;
* Les pages habituellement référencées peuvent toujours apparaître dans les archives des moteurs de recherche Internet. Par exemple, ''1998results.asp'' peut ne plus être lié à un site web d'entreprise, &lt;br /&gt;
mais cependant rester sur le serveur et dans les bases de données des moteurs de recherche. Ce vieux script peut contenir des vulnérabilités qui peuvent permettre de compromettre le site entier.&lt;br /&gt;
L'opérateur de recherche Google ''site:'' peut être utilisé pour faire une recherche sur un seul domaine choisi, comme dans : ''site:www.example.com''. Utiliser les moteurs de recherche de cette façon a permis un large éventail de techniques que vous pourrez trouver utiles et qui sont décrites  dans la section ''Google Hacking'' de ce Guide. Lisez-le pour affûter vos compétences de test via Google. &lt;br /&gt;
&lt;br /&gt;
les fichiers de sauvegarde ne sont probablement pas référencés par d'autres fichiers et ainsi ne doivent pas été indexées par Google mais s'ils se trouvent dans des répertoires accessibles par votre navigateur,le moteur de recherche peut en avoir connaissance.&lt;br /&gt;
&lt;br /&gt;
* De plus, Google et Yahoo conservent des versions en cache des pages trouvées par leurs robots. Même si ''1998results.asp'' a été supprimé du serveur cible, une version de ses résultats peut toujours être stockée par ces moteurs de recherche. Ces versions en cache peuvent contenir des références ou, des indices ou, un autre contenu additionnel caché, qui existent toujours sur le serveur. &lt;br /&gt;
&lt;br /&gt;
* Du contenu, non référencé par une application cible, peut être lié à des sites web d'un tiers. Par exemple, une application qui gère les paiements en ligne pour le compte d'un site marchand peut contenir une diversité de fonctionnalités sur mesure qui ne doivent, normallement, être retrouvées qu'en suivant les liens des sites web de leurs clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Contournement du filtrage des noms de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Comme les filtres de liste noire sont basés sur des expressions régulières, on peut parfois profiter de fonctionnalités d'expansions opaques de noms de fichiers qui fonctionnent d'une façon que le développeur n'imagine pas.&lt;br /&gt;
&lt;br /&gt;
Le testeur peut parfois exploiter la différence dans la façon dont les noms de fichiers sont analysés par l'application, le serveur web, et le système d'exploitation sous-jacent et ses conventions de nommage de fichiers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemple: Expansion des noms de fichiers sous Windows 8.3 &lt;br /&gt;
&amp;quot;c:\program files&amp;quot; devient &amp;quot;C:\PROGRA~1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
– Supprime les caractères incompatibles&lt;br /&gt;
– Convertit les espaces en caractère souligné bas &amp;quot;_&amp;quot;&lt;br /&gt;
- Prend les six premiers caractères du nom &lt;br /&gt;
– Ajoute “~&amp;lt;chiffre&amp;gt;” pour différencier les fichiers dont les noms ont les mêmes six premiers caractères &lt;br /&gt;
- Cette convention change après les 3 premières collisions de noms&lt;br /&gt;
– Tronque les extensions de fichiers à trois caractères&lt;br /&gt;
- Mets tous les caractères en lettres majuscules &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Réaliser un test en boite grise sur les vieux fichiers et les fichiers de sauvegarde nécessite l'examen des fichiers contenus dans les répertoires appartenant à l'ensemble des répertoires &lt;br /&gt;
web servis par le(s) serveur(s) internet de l'infrastructure de l'application. Théoriquement, l'examen devrait être réalisé manuellement pour être exhaustif. &lt;br /&gt;
&lt;br /&gt;
Quoiqu'il en soit, comme la plupart du temps les copies ou les sauvegardes de fichiers utilisent les mêmes conventions de nommage, la recherche peut être effectuée facilement par script. &lt;br /&gt;
Par exemple, les éditeurs nomment les copies de sauvegardes avec une extension reconnaissable et les humains tendent à les nommer en .old ou une autre extension similaire prédictible.&lt;br /&gt;
 &lt;br /&gt;
Uune bonne stratégie consiste à planifier une tâche de fond périodique à la recherche de fichiers avec des extensions qui les identifient comme de probables copies ou des sauvegardes de fichiers&lt;br /&gt;
et à faire aussi des vérifications manuelles sur des périodes plus longues.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Les outils d'évaluation de vulnérabilités tendent à inclure des vérifications pour repérer les répertoires web avec des noms standard (tels que “admin”, “test”, “backup”, etc.), et à remonter tout répertoire web qui autorise l'indexation. &lt;br /&gt;
&lt;br /&gt;
Si vous ne pouvez pas lister les répertoires, vous devriez essayer de vérifier les extensions probables des fichiers de sauvegarde.&lt;br /&gt;
Regarder par exemple Nessus (http://www.nessus.org), Nikto2(http://www.cirt.net/code/nikto.shtml) &lt;br /&gt;
ou les nouveaux dérivés Wikto (http://www.sensepost.com/research/wikto/),qui supportent les stratégies de base du Google hacking.&lt;br /&gt;
&lt;br /&gt;
* Robots d'exploration du Web &amp;quot;spider tools&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
  wget (http://www.gnu.org/software/wget/, http://www.interlog.com/~tcharron/wgetwin.html); &lt;br /&gt;
  Sam Spade (http://www.samspade.org); &lt;br /&gt;
  Le proxy Spike comprend une fonction d'exploration de site web (http://www.immunitysec.com/spikeproxy.html); &lt;br /&gt;
  Xenu (http://home.snafu.de/tilman/xenulink.html); &lt;br /&gt;
  curl (http://curl.haxx.se). &lt;br /&gt;
  Certains de ces outils sont compris en standard dans les distributions Linux.&lt;br /&gt;
  &lt;br /&gt;
* Les utilitaires de développement Web ont généralement des outils pour identifier les liens cassés et les fichiers non référencés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Remediation ==&lt;br /&gt;
&lt;br /&gt;
Pour garantir une stratégie de protection efficace, les tests doivent être complétés par une politique de sécurité qui interdit clairement des pratiques dangereuses telles que :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Editer des fichiers directement sur le serveur web ou sur le système de fichiers de l'application. C'est vraiment une mauvaise habitude car il est prévisible que les éditeurs génèrent des fichiers de backup non souhaités. C'est étonnant de voir comme c'est fréquent, même dans les grandes organisations. Si vous avez absolument besoin d'éditer un fichier sur un serveur de production,assurez-vous de n'y laisser que ce qui est explicitement nécessaire, et considérez que vous le faites à vos propres risques.&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
* Vérifier soigneusement toute autre acticité réalisée sur le système de fichiers exposé par le serveur web, telles que les activités d'administration. &lt;br /&gt;
Par exemple, si vous avez occasionnellement besoin de faire une &amp;quot;copie instantanée&amp;quot; de quelques répertoires (ce que vous devriez pas faire en production), vous pouvez être tenté de les zipper d'abord. &lt;br /&gt;
Faites attention de ne pas oublier de ne pas laisser l'archive derrière vous.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Une politique de gestion de configuration devrait permettre de ne pas laisser traîner des fichiers obsolètes ou non référencés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les applications devraient être concues pour ne pas créer (ou s'appuyer sur) des fichiers stockés sous l'arborescence de répertoires mis à disposition par le serveur web. Les fichiers de données, de trace, de configuration, etc..., devraient être stockés dans des répertoires inacessibles au serveur web, pour contrer les possibilités de divulgation d'information (pas pour mentionner des modifications de données si les permissions sur les répertoires web permettent d'écrire).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les &amp;quot;copies instantanées&amp;quot; ou &amp;quot;snapshot&amp;quot; de système de fichiers ne devraient pas être accessibles par le web si l'emplacement du document est sur un système de fichiers utilisant cette technologie. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configurer votre serveur web pour refuser l'accès à de tels répertoires, par exemple, sous apache une directive &amp;lt;location&amp;gt;, comme indiqué ci-dessous, devrait être mise en place :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Location ~ &amp;quot;.snapshot&amp;quot;&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201774</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201774"/>
				<updated>2015-10-06T19:24:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management, Asset Security,&lt;br /&gt;
Security Engineering, Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP TEN 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP 10 2013 en Français]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the OWASP Testing Guide v4 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.4 Revue des fichiers pour recherche d'informations sensibles (OTG-CONFIG-004)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=201772</id>
		<title>4.3.4 Revue des fichiers pour recherche d'informations sensibles (OTG-CONFIG-004)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=201772"/>
				<updated>2015-10-06T19:19:44Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Created page with &amp;quot;{{Template:OWASP Testing Guide v4}}  == Sommaire ==   Alors que la plupart des fichiers d’un serveur web sont stockés sur le serveur lui-même, il n’est pas inhabituel d...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alors que la plupart des fichiers d’un serveur web sont stockés sur le serveur lui-même, il n’est pas inhabituel d’y trouver des fichiers sans référence,&lt;br /&gt;
ou oubliés, qui permettent d’obtenir des informations sensibles sur l’infrastructure ou, même, des justificatifs d’accès. &lt;br /&gt;
&lt;br /&gt;
Le plus souvent, on retrouve des anciennes versions de fichiers modifiés, renommés en «.old », la mention de fichiers qui sont chargés suivant le choix du&lt;br /&gt;
langage et qui peuvent être téléchargés comme source, ou même des sauvegardes automatiques, ou manuelles, telles que des archives compressées. Des fichiers&lt;br /&gt;
de sauvegarde peuvent aussi être générés automatiquement par le système de fichiers sur lequel l’application est hébergée, une fonction habituellement &lt;br /&gt;
appelée &amp;quot;copie instantanée&amp;quot; ou &amp;quot;snapshot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tous ces fichiers peuvent permettre au testeur d’accéder au fonctionnement interne, aux portes dérobées, aux interfaces d’administration, ou même aux comptes&lt;br /&gt;
privilégiés permettant les accès administrateur et aux bases de données. &lt;br /&gt;
&lt;br /&gt;
Il y a une source importante de vulnérabilités parmi les fichiers n’ayant aucun lien avec l’application, sauf d’avoir été générés par l’édition de fichiers&lt;br /&gt;
d’application, ou issus de copies de sauvegarde instantanées, ou fichiers anciens ou non référencés laissés dans l’arborescence du serveur web. &lt;br /&gt;
Editer des fichiers sur le serveur de production ou, y faire d’autres actions de type administrateur, peut y laisser malencontreusement des copies de sauvegarde&lt;br /&gt;
ou des fichiers générés par l’édition de fichiers, ou par l’administrateur créant un fichier zippé d’un ensemble de fichiers pour faire une sauvegarde. &lt;br /&gt;
&lt;br /&gt;
C’est facile d’oublier de tels fichiers et cela peut présenter de sérieuses menaces de sécurité pour l’application. &lt;br /&gt;
Cela arrive parce que les copies de sauvegarde peuvent générer des extensions de sauvegarde différentes des fichiers originaux. &lt;br /&gt;
Une archive .tar, .zip ou .gz que nous générons (et oublions) a, bien sûr, une extension différente, et il arrive la même chose&lt;br /&gt;
avec les copies générées par plusieurs éditeurs (par exemple, emacs génère une copie de sauvegarde nommée ''file~'' lorsqu’on édite ''file''). &lt;br /&gt;
Une copie manuelle peut aboutir au même effet (comme copier ''file'' en ''file.old''). Le système de fichier sous-jacent peut faire des «copies instantanées»&lt;br /&gt;
de vos applications, à différents moments, sans que vous le sachiez, et ils peuvent être accessibles par le web, ce qui présente une menace de type &lt;br /&gt;
«fichiers de sauvegarde», différente mais similaire, pour votre application.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ces activités peuvent générer des fichiers non nécessaires à l’application qui peuvent être utilisés différemment des fichiers originaux par le serveur web. Par exemple, si nous faisons une copie du fichier ''login.asp'' vers ''login.asp.old'', nous permettons aux utilisateurs de télécharger le code source de ''login.asp''. Ceci parce ''login.asp.old'' sera habituellement ouvert comme un fichier texte ou brut plutôt qu’exécuté à cause de son extension. &lt;br /&gt;
&lt;br /&gt;
En d’autres mots, l’accès au fichier ''login.asp'' entraîne l’exécution sur le serveur du code ''login.asp'' tandis que l’accès au fichier ''login.asp.old'' entraîne le contenu du fichier ''login.asp.old'' (qui est, là aussi, le code du serveur) à être affiché clairement sur le navigateur de l’utilisateur. Cela présente des risques de sécurité puisque des informations de sécurité peuvent ainsi être révélées.&lt;br /&gt;
&lt;br /&gt;
Généralement, exposer le code du serveur n’est pas une bonne idée. Non seulement, vous exposez inutilement la logique de l’entreprise mais vous pouvez divulguer sans le savoir des informations relatives à l’application qui peuvent aider l’attaquant (chemin d’accès, structures des données, etc...). &lt;br /&gt;
&lt;br /&gt;
Ceci sans mentionner le fait qu’on trouve beaucoup trop de scripts avec des comptes et mots de passe en clair (ce qui est une pratique imprudente et dangereuse).&lt;br /&gt;
&lt;br /&gt;
D’autres causes de fichiers non référencés sont dues aux choix d’architecture et de configuration quand ceux-ci permettent au serveur web d’accéder à toutes sortes de fichiers relatifs à l’application tels que des fichiers de données, de configuration, de logs stockés dans des répertoires du système de fichier. &lt;br /&gt;
&lt;br /&gt;
Ces fichiers n’ont normalement rien à faire dans l’espace du système de fichiers accessible par le web puisqu’ils ne devraient être accessibles qu’au niveau de l’application, par l’application elle-même (et non par un utilisateur occasionnel qui navigue autour).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menaces ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegardes et, les fichiers anciens ou non référencés, représentent diverses menaces à la sécurité d’une application web :&lt;br /&gt;
&lt;br /&gt;
* Les fichiers non référencés peuvent dévoiler des informations sensibles qu peuvent faciliter une attaque ciblée d’une application ; par exemple cela comprend les bases de données de justificatifs d’accès, les fichiers de configuration contenant des références à des contenus cachés, chemins d’accès complets, etc...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Des pages non référencées peuvent contenir de puissantes fonctionnalités pouvant être utilisées pour attaquer l’application ; par exemple une page d’administration non publiée mais qui peut être accédée par n’importe quel utilisateur qui sait où la trouver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* D’anciens fichiers ou des fichiers de sauvegarde peuvent contenir des vulnérabilités qui ont été corrigées dans des versions plus récentes ; par exemple ''viewdoc.old.jsp'' peu contenir une vulnérabilité de type «traversée de répertoires» ou &amp;quot;Path Traversal&amp;quot; qui a été corrigée dans ''viewdoc.jsp'' mais peut toujours être exploitée par celui qui trouve cette vieille version. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent dévoiler le code source des pages prévues pour être exécutées sur le serveur ; par exemple, ouvrir ''viewdoc.bak'' peut renvoyer le code source de ''viewdoc.jsp'', qui peut être analysé pour en rechercher les vulnerabilités qui seraient difficiles à trouver en faisant des requêtes à l’aveugle vers la page exécutable. Alors que cette menace s’applique évidemment au langages de script, tels que Perl, PHP, ASP, shell scripts, JSP, etc., cela ne se limite pas à eux seuls, comme nous le verrons dans l’exemple du prochain paragraphe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent contenir des copies de tous les fichiers sous la racine (ou même en dehors) du site web. Cela permet à l’attaquant de rapidement énumérer l’application entière, dont les pages non référérencées, le code source, les fichiers inclus, etc... par exemple, si vous avez oublié un fichier nommé ''myservlets.jar.old'' qui contient (une copie de sauvegarde de) vos classes de servlet implémentées, vous exposez beaucoup d’informations sensibles pouvant faire l’objet de décompilation ou de rétro-ingénierie. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Dans certains cas, éditer ou copier un fichier ne modifie pas l’extension de fichier mais modifie le nom du fichier. Cela arrive, par exemple dans les environnements Windows, où les opérations de copie de fichier génèrent des fichiers suffixés avec «-Copie» ou des versions locales de cette chaîne. Puisque l’extension de fichier reste inchangée, ce n’est pas le cas où le fichier exécutable est renvoyé comme texte en clair par le serveur web, donc pas un cas de divulgation de code source. Malgré tout, ces fichiers aussi sont dangereux car il y a une possibilité qu’ils contiennent une logique incorrecte ou obsolète et peuvent, s'ils sont accédés, déclencher des erreurs d’application, qui donnent de précieuses informations à l’attaquant, si le message d’erreur s’affiche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les fichiers journaux peuvent contenir des informations sensibles à propos des usages de l’application par les utilisateurs, par exemple les données sensibles passées en paramètre aux URL, les ID de session, les URL visités (qui peuvent divulguer d’autres contenus non référencés), etc... D’autres fichiers journaux (ex. les journaux ftp) peuvent contenir des informations sensibles à propos de la maintenance de l’application par les administrateurs système.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les copies instantanées de système de fichiers peuvent contenir des copies de code ayant des vulnérabilités corrigées dans les versions plus récentes. Par exemple, ''/.snapshot/monthly.1/view.php'' peut contenir une vulnérabilité de type « traversée de répertoire » qui a été corrigée dans ''/view.php'' mais qui peut toujours être exploitée par celui qui trouve la vieille version du fichier. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester==&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
Le test des fichiers non référencés utilise à la fois des techniques manuelles et automatiques et typiquement combine les suivantes : &lt;br /&gt;
&lt;br /&gt;
==== Déductions du schéma de nommage du contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Dénombrer toutes les pages et les fonctionnalités de l’application. Cela peut être fait manuellement avec un navigateur ou en utilisant un outil d’exploration (« spidering ») d’application. La plupart des applications utilisent un schéma de nommage identifiable, et organisent les ressources en pages et répertoires en utilisant des mots décrivant leurs fonctions. A partir du schéma de nommage utilisé pour le contenu publié, il est souvent possible d’en déduire le nom et l’emplacement des fichiers non référencés. Par exemple, si on trouve une page ''viewuser.asp'', alors il faut chercher ''edituser.asp'',''adduser.asp'' et ''deleteuser.asp''. Si on trouve un répertoire ''/app/user'', il faut aussi chercher ''/app/admin'' et ''/app/manager''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Autres indices dans le contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Beaucoup d’applications web laissent des indices dans leur contenu publié qui peuvent conduire à découvrir des fonctionnalités ou des pages cachées. Ces indices se retrouvent souvent dans le code source HTML et dans les fichiers JavaScript. Le code source de tous les contenus publiés devrait être revu manuellement pour identifier les indices laissés concernant les fonctionnalités et les pages.&lt;br /&gt;
Par exemple : &lt;br /&gt;
&lt;br /&gt;
Les commentaires et les sections commentées du code source par les programmeurs peuvent faire référence à du contenu caché : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;A HREF=&amp;quot;uploadfile.jsp&amp;quot;&amp;gt;Upload a document to the server&amp;lt;/A&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Link removed while bugs in uploadfile.jsp are fixed          --&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScript peut contenir des liens sur des pages qui sont uniquement émises dans l’interface graphique de l’utilisateur dans certaines circonstances : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var adminUser=false;&lt;br /&gt;
:&lt;br /&gt;
if (adminUser) menu.add (new menuItem (&amp;quot;Maintain users&amp;quot;, &amp;quot;/admin/useradmin.jsp&amp;quot;)); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les pages HTML peuvent contenir des FORMs qui ont été cachées en désactivant l’élément SUBMIT : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FORM action=&amp;quot;forgotPassword.jsp&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;INPUT type=&amp;quot;hidden&amp;quot; name=&amp;quot;userID&amp;quot; value=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;lt;INPUT type=&amp;quot;submit&amp;quot; value=&amp;quot;Forgot Password&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre source d’indices concernant les répertoires non référencés est le fichier ''/robots.txt'', fichier utilisé pour donner des instructions aux robots d’indexation du web : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User-agent: *&lt;br /&gt;
Disallow: /Admin&lt;br /&gt;
Disallow: /uploads&lt;br /&gt;
Disallow: /backup&lt;br /&gt;
Disallow: /~jbloggs&lt;br /&gt;
Disallow: /include &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Recherche à l'aveugle ====&lt;br /&gt;
&lt;br /&gt;
Dans sa forme la plus simple, il s'agit de lancer une recherche de noms de fichiers usuels via un moteur de requêtes dans le but de deviner quels sont les fichiers et les répertoires existant sur le serveur.&lt;br /&gt;
Ce &amp;quot;wrapper&amp;quot; script netcat lira une liste de mots à partir de stdin et réalisera une attaque élémentaire par conjecture ou &amp;quot;guessing attack&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
server=www.targetapp.com&lt;br /&gt;
port=80&lt;br /&gt;
&lt;br /&gt;
while read url&lt;br /&gt;
do&lt;br /&gt;
echo -ne &amp;quot;$url\t&amp;quot;&lt;br /&gt;
echo -e &amp;quot;GET /$url HTTP/1.0\nHost: $server\n&amp;quot; | netcat $server $port | head -1&lt;br /&gt;
done | tee outputfile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suivant la configuration du serveur, on pourra remplacer la commande GET par une commande HEAD pour avoir des résultats plus rapides. On pourra ensuite faire une commande grep sur le fichier de sortie pour y rechercher des codes de réponse “interessants”. Le code de réponse &amp;quot;200&amp;quot; (OK) indique habituellement qu'une ressource valide a été trouvée (a priori, un serveur ne renvoie pas une page “not found” avec un code &amp;quot;200&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Rechercher aussi les codes &amp;quot;301&amp;quot; (Déplacé), &amp;quot;302&amp;quot; (Trouvé), &amp;quot;401&amp;quot; (Non autorisé), &amp;quot;403&amp;quot; (Interdit) and 500 (Erreur Interne), qui peuvent aussi référencer des ressources et des répertoires qui méritent plus d'investigation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'attaque élémentaire par conjecture doit s'effectuer sur le répertoire racine du serveur, le &amp;quot;webroot&amp;quot;, et aussi sur tous les répertoires identifiés par d'autres méthodes d'énumeration. &lt;br /&gt;
Des attaques par conjecture, plus avancées et efficaces, peuvent être réalisées comme ceci: &lt;br /&gt;
&lt;br /&gt;
* Identifier les extensions de fichiers utilisées dans les espaces connus de l'application (ex. jsp, aspx, html), et prendre une liste de mots de base ajoutés à ces extensions ou prendre une plus longue liste des extensions communes si les ressources le permettent). &lt;br /&gt;
&lt;br /&gt;
* Pour chaque fichier identifié par d'autres techniques d'énumeration, créer une liste de mots personnalisés dérivés du nom de fichier. &lt;br /&gt;
Prendre une liste des extensions de fichier usuels (incluant les ~, bak, txt, src, dev, old, inc, orig, copy, tmp, etc.) et utiliser chaque extension avant, après, et à la place de l'extension actuelle du fichier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Les opérations de copie de fichiers Windows generent des noms de fichiers postfixés par “-Copie“ ou par des versions localisées de cette chaîne, mais ne change pas l'extension du fichier. &lt;br /&gt;
Quoique les fichiers “-Copie“ ne divulguent pas habituellement le source code quand on y accède, ils peuvent néanmoins apporter des informations sensibles dans le cas où ils génèrent des erreurs quand on y accède.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Informations obtenues grâce aux vulnérabilités et aux mauvaises configurations du serveur ====&lt;br /&gt;
&lt;br /&gt;
Le cas le plus flagrant où une mauvaise configuration du serveur peut divulguer des pages non référencées est l'énumération des répertoires. &lt;br /&gt;
Rechercher dans tous les répertoires énumérés pour identifier ceux qui listent des répertoires. &lt;br /&gt;
&lt;br /&gt;
On trouve de nombreuses vulnerabilités sur des serveurs web personnels qui permettent aux attaquants de lister du contenu non référencé, comme par exemple: &lt;br /&gt;
&lt;br /&gt;
* Apache ?M=D directory listing vulnerability.&lt;br /&gt;
* Various IIS script source disclosure vulnerabilities. &lt;br /&gt;
* IIS WebDAV directory listing vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Utilisation de l'information accessible au public ====&lt;br /&gt;
&lt;br /&gt;
Les pages et les fonctionnalités, des applications web sur Internet, qui ne sont pas référencées par l'application elle-même peuvent être référencées par d'autres sources du domaine public. &lt;br /&gt;
Il existe plusieurs sources de ces références : &lt;br /&gt;
&lt;br /&gt;
* Les pages habituellement référencées peuvent toujours apparaître dans les archives des moteurs de recherche Internet. Par exemple, ''1998results.asp'' peut ne plus être lié à un site web d'entreprise, &lt;br /&gt;
mais cependant rester sur le serveur et dans les bases de données des moteurs de recherche. Ce vieux script peut contenir des vulnérabilités qui peuvent permettre de compromettre le site entier.&lt;br /&gt;
L'opérateur de recherche Google ''site:'' peut être utilisé pour faire une recherche sur un seul domaine choisi, comme dans : ''site:www.example.com''. Utiliser les moteurs de recherche de cette façon a permis un large éventail de techniques que vous pourrez trouver utiles et qui sont décrites  dans la section ''Google Hacking'' de ce Guide. Lisez-le pour affûter vos compétences de test via Google. &lt;br /&gt;
&lt;br /&gt;
les fichiers de sauvegarde ne sont probablement pas référencés par d'autres fichiers et ainsi ne doivent pas été indexées par Google mais s'ils se trouvent dans des répertoires accessibles par votre navigateur,le moteur de recherche peut en avoir connaissance.&lt;br /&gt;
&lt;br /&gt;
* De plus, Google et Yahoo conservent des versions en cache des pages trouvées par leurs robots. Même si ''1998results.asp'' a été supprimé du serveur cible, une version de ses résultats peut toujours être stockée par ces moteurs de recherche. Ces versions en cache peuvent contenir des références ou, des indices ou, un autre contenu additionnel caché, qui existent toujours sur le serveur. &lt;br /&gt;
&lt;br /&gt;
* Du contenu, non référencé par une application cible, peut être lié à des sites web d'un tiers. Par exemple, une application qui gère les paiements en ligne pour le compte d'un site marchand peut contenir une diversité de fonctionnalités sur mesure qui ne doivent, normallement, être retrouvées qu'en suivant les liens des sites web de leurs clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Contournement du filtrage des noms de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Comme les filtres de liste noire sont basés sur des expressions régulières, on peut parfois profiter de fonctionnalités d'expansions opaques de noms de fichiers qui fonctionnent d'une façon que le développeur n'imagine pas.&lt;br /&gt;
&lt;br /&gt;
Le testeur peut parfois exploiter la différence dans la façon dont les noms de fichiers sont analysés par l'application, le serveur web, et le système d'exploitation sous-jacent et ses conventions de nommage de fichiers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemple: Expansion des noms de fichiers sous Windows 8.3 &lt;br /&gt;
&amp;quot;c:\program files&amp;quot; devient &amp;quot;C:\PROGRA~1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
– Supprime les caractères incompatibles&lt;br /&gt;
– Convertit les espaces en caractère souligné bas &amp;quot;_&amp;quot;&lt;br /&gt;
- Prend les six premiers caractères du nom &lt;br /&gt;
– Ajoute “~&amp;lt;chiffre&amp;gt;” pour différencier les fichiers dont les noms ont les mêmes six premiers caractères &lt;br /&gt;
- Cette convention change après les 3 premières collisions de noms&lt;br /&gt;
– Tronque les extensions de fichiers à trois caractères&lt;br /&gt;
- Mets tous les caractères en lettres majuscules &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Réaliser un test en boite grise sur les vieux fichiers et les fichiers de sauvegarde nécessite l'examen des fichiers contenus dans les répertoires appartenant à l'ensemble des répertoires &lt;br /&gt;
web servis par le(s) serveur(s) internet de l'infrastructure de l'application. Théoriquement, l'examen devrait être réalisé manuellement pour être exhaustif. &lt;br /&gt;
&lt;br /&gt;
Quoiqu'il en soit, comme la plupart du temps les copies ou les sauvegardes de fichiers utilisent les mêmes conventions de nommage, la recherche peut être effectuée facilement par script. &lt;br /&gt;
Par exemple, les éditeurs nomment les copies de sauvegardes avec une extension reconnaissable et les humains tendent à les nommer en .old ou une autre extension similaire prédictible.&lt;br /&gt;
 &lt;br /&gt;
Uune bonne stratégie consiste à planifier une tâche de fond périodique à la recherche de fichiers avec des extensions qui les identifient comme de probables copies ou des sauvegardes de fichiers&lt;br /&gt;
et à faire aussi des vérifications manuelles sur des périodes plus longues.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Les outils d'évaluation de vulnérabilités tendent à inclure des vérifications pour repérer les répertoires web avec des noms standard (tels que “admin”, “test”, “backup”, etc.), et à remonter tout répertoire web qui autorise l'indexation. &lt;br /&gt;
&lt;br /&gt;
Si vous ne pouvez pas lister les répertoires, vous devriez essayer de vérifier les extensions probables des fichiers de sauvegarde.&lt;br /&gt;
Regarder par exemple Nessus (http://www.nessus.org), Nikto2(http://www.cirt.net/code/nikto.shtml) &lt;br /&gt;
ou les nouveaux dérivés Wikto (http://www.sensepost.com/research/wikto/),qui supportent les stratégies de base du Google hacking.&lt;br /&gt;
&lt;br /&gt;
* Robots d'exploration du Web &amp;quot;spider tools&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
  wget (http://www.gnu.org/software/wget/, http://www.interlog.com/~tcharron/wgetwin.html); &lt;br /&gt;
  Sam Spade (http://www.samspade.org); &lt;br /&gt;
  Le proxy Spike comprend une fonction d'exploration de site web (http://www.immunitysec.com/spikeproxy.html); &lt;br /&gt;
  Xenu (http://home.snafu.de/tilman/xenulink.html); &lt;br /&gt;
  curl (http://curl.haxx.se). &lt;br /&gt;
  Certains de ces outils sont compris en standard dans les distributions Linux.&lt;br /&gt;
  &lt;br /&gt;
* Les utilitaires de développement Web ont généralement des outils pour identifier les liens cassés et les fichiers non référencés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Remediation ==&lt;br /&gt;
&lt;br /&gt;
Pour garantir une stratégie de protection efficace, les tests doivent être complétés par une politique de sécurité qui interdit clairement des pratiques dangereuses telles que :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Editer des fichiers directement sur le serveur web ou sur le système de fichiers de l'application. C'est vraiment une mauvaise habitude car il est prévisible que les éditeurs génèrent des fichiers de backup non souhaités. C'est étonnant de voir comme c'est fréquent, même dans les grandes organisations. Si vous avez absolument besoin d'éditer un fichier sur un serveur de production,assurez-vous de n'y laisser que ce qui est explicitement nécessaire, et considérez que vous le faites à vos propres risques.&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
* Vérifier soigneusement toute autre acticité réalisée sur le système de fichiers exposé par le serveur web, telles que les activités d'administration. &lt;br /&gt;
Par exemple, si vous avez occasionnellement besoin de faire une &amp;quot;copie instantanée&amp;quot; de quelques répertoires (ce que vous devriez pas faire en production), vous pouvez être tenté de les zipper d'abord. &lt;br /&gt;
Faites attention de ne pas oublier de ne pas laisser l'archive derrière vous.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Une politique de gestion de configuration devrait permettre de ne pas laisser traîner des fichiers obsolètes ou non référencés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les applications devraient être concues pour ne pas créer (ou s'appuyer sur) des fichiers stockés sous l'arborescence de répertoires mis à disposition par le serveur web. Les fichiers de données, de trace, de configuration, etc..., devraient être stockés dans des répertoires inacessibles au serveur web, pour contrer les possibilités de divulgation d'information (pas pour mentionner des modifications de données si les permissions sur les répertoires web permettent d'écrire).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les &amp;quot;copies instantanées&amp;quot; ou &amp;quot;snapshot&amp;quot; de système de fichiers ne devraient pas être accessibles par le web si l'emplacement du document est sur un système de fichiers utilisant cette technologie. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configurer votre serveur web pour refuser l'accès à de tels répertoires, par exemple, sous apache une directive &amp;lt;location&amp;gt;, comme indiqué ci-dessous, devrait être mise en place :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Location ~ &amp;quot;.snapshot&amp;quot;&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201770</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201770"/>
				<updated>2015-10-06T19:18:48Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management, Asset Security,&lt;br /&gt;
Security Engineering, Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP TEN 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP 10 2013 en Français]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the OWASP Testing Guide v4 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.4 Revue des fichiers pour recherche d'informations sensibles (OTG-CONFIG-004)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_anciens,_non_references,_ou_de_sauvegarde_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=201769</id>
		<title>4.3.4 Revue des fichiers anciens, non references, ou de sauvegarde pour recherche d'informations sensibles (OTG-CONFIG-004)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.4_Revue_des_fichiers_anciens,_non_references,_ou_de_sauvegarde_pour_recherche_d%27informations_sensibles_(OTG-CONFIG-004)&amp;diff=201769"/>
				<updated>2015-10-06T19:02:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Created page with &amp;quot;{{Template:OWASP Testing Guide v4}}  == Sommaire ==   Alors que la plupart des fichiers d’un serveur web sont stockés sur le serveur lui-même, il n’est pas inhabituel d...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alors que la plupart des fichiers d’un serveur web sont stockés sur le serveur lui-même, il n’est pas inhabituel d’y trouver des fichiers sans référence,&lt;br /&gt;
ou oubliés, qui permettent d’obtenir des informations sensibles sur l’infrastructure ou, même, des justificatifs d’accès. &lt;br /&gt;
&lt;br /&gt;
Le plus souvent, on retrouve des anciennes versions de fichiers modifiés, renommés en «.old », la mention de fichiers qui sont chargés suivant le choix du&lt;br /&gt;
langage et qui peuvent être téléchargés comme source, ou même des sauvegardes automatiques, ou manuelles, telles que des archives compressées. Des fichiers&lt;br /&gt;
de sauvegarde peuvent aussi être générés automatiquement par le système de fichiers sur lequel l’application est hébergée, une fonction habituellement &lt;br /&gt;
appelée &amp;quot;copie instantanée&amp;quot; ou &amp;quot;snapshot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tous ces fichiers peuvent permettre au testeur d’accéder au fonctionnement interne, aux portes dérobées, aux interfaces d’administration, ou même aux comptes&lt;br /&gt;
privilégiés permettant les accès administrateur et aux bases de données. &lt;br /&gt;
&lt;br /&gt;
Il y a une source importante de vulnérabilités parmi les fichiers n’ayant aucun lien avec l’application, sauf d’avoir été générés par l’édition de fichiers&lt;br /&gt;
d’application, ou issus de copies de sauvegarde instantanées, ou fichiers anciens ou non référencés laissés dans l’arborescence du serveur web. &lt;br /&gt;
Editer des fichiers sur le serveur de production ou, y faire d’autres actions de type administrateur, peut y laisser malencontreusement des copies de sauvegarde&lt;br /&gt;
ou des fichiers générés par l’édition de fichiers, ou par l’administrateur créant un fichier zippé d’un ensemble de fichiers pour faire une sauvegarde. &lt;br /&gt;
&lt;br /&gt;
C’est facile d’oublier de tels fichiers et cela peut présenter de sérieuses menaces de sécurité pour l’application. &lt;br /&gt;
Cela arrive parce que les copies de sauvegarde peuvent générer des extensions de sauvegarde différentes des fichiers originaux. &lt;br /&gt;
Une archive .tar, .zip ou .gz que nous générons (et oublions) a, bien sûr, une extension différente, et il arrive la même chose&lt;br /&gt;
avec les copies générées par plusieurs éditeurs (par exemple, emacs génère une copie de sauvegarde nommée ''file~'' lorsqu’on édite ''file''). &lt;br /&gt;
Une copie manuelle peut aboutir au même effet (comme copier ''file'' en ''file.old''). Le système de fichier sous-jacent peut faire des «copies instantanées»&lt;br /&gt;
de vos applications, à différents moments, sans que vous le sachiez, et ils peuvent être accessibles par le web, ce qui présente une menace de type &lt;br /&gt;
«fichiers de sauvegarde», différente mais similaire, pour votre application.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ces activités peuvent générer des fichiers non nécessaires à l’application qui peuvent être utilisés différemment des fichiers originaux par le serveur web. Par exemple, si nous faisons une copie du fichier ''login.asp'' vers ''login.asp.old'', nous permettons aux utilisateurs de télécharger le code source de ''login.asp''. Ceci parce ''login.asp.old'' sera habituellement ouvert comme un fichier texte ou brut plutôt qu’exécuté à cause de son extension. &lt;br /&gt;
&lt;br /&gt;
En d’autres mots, l’accès au fichier ''login.asp'' entraîne l’exécution sur le serveur du code ''login.asp'' tandis que l’accès au fichier ''login.asp.old'' entraîne le contenu du fichier ''login.asp.old'' (qui est, là aussi, le code du serveur) à être affiché clairement sur le navigateur de l’utilisateur. Cela présente des risques de sécurité puisque des informations de sécurité peuvent ainsi être révélées.&lt;br /&gt;
&lt;br /&gt;
Généralement, exposer le code du serveur n’est pas une bonne idée. Non seulement, vous exposez inutilement la logique de l’entreprise mais vous pouvez divulguer sans le savoir des informations relatives à l’application qui peuvent aider l’attaquant (chemin d’accès, structures des données, etc...). &lt;br /&gt;
&lt;br /&gt;
Ceci sans mentionner le fait qu’on trouve beaucoup trop de scripts avec des comptes et mots de passe en clair (ce qui est une pratique imprudente et dangereuse).&lt;br /&gt;
&lt;br /&gt;
D’autres causes de fichiers non référencés sont dues aux choix d’architecture et de configuration quand ceux-ci permettent au serveur web d’accéder à toutes sortes de fichiers relatifs à l’application tels que des fichiers de données, de configuration, de logs stockés dans des répertoires du système de fichier. &lt;br /&gt;
&lt;br /&gt;
Ces fichiers n’ont normalement rien à faire dans l’espace du système de fichiers accessible par le web puisqu’ils ne devraient être accessibles qu’au niveau de l’application, par l’application elle-même (et non par un utilisateur occasionnel qui navigue autour).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menaces ===&lt;br /&gt;
&lt;br /&gt;
Les fichiers de sauvegardes et, les fichiers anciens ou non référencés, représentent diverses menaces à la sécurité d’une application web :&lt;br /&gt;
&lt;br /&gt;
* Les fichiers non référencés peuvent dévoiler des informations sensibles qu peuvent faciliter une attaque ciblée d’une application ; par exemple cela comprend les bases de données de justificatifs d’accès, les fichiers de configuration contenant des références à des contenus cachés, chemins d’accès complets, etc...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Des pages non référencées peuvent contenir de puissantes fonctionnalités pouvant être utilisées pour attaquer l’application ; par exemple une page d’administration non publiée mais qui peut être accédée par n’importe quel utilisateur qui sait où la trouver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* D’anciens fichiers ou des fichiers de sauvegarde peuvent contenir des vulnérabilités qui ont été corrigées dans des versions plus récentes ; par exemple ''viewdoc.old.jsp'' peu contenir une vulnérabilité de type «traversée de répertoires» ou &amp;quot;Path Traversal&amp;quot; qui a été corrigée dans ''viewdoc.jsp'' mais peut toujours être exploitée par celui qui trouve cette vieille version. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent dévoiler le code source des pages prévues pour être exécutées sur le serveur ; par exemple, ouvrir ''viewdoc.bak'' peut renvoyer le code source de ''viewdoc.jsp'', qui peut être analysé pour en rechercher les vulnerabilités qui seraient difficiles à trouver en faisant des requêtes à l’aveugle vers la page exécutable. Alors que cette menace s’applique évidemment au langages de script, tels que Perl, PHP, ASP, shell scripts, JSP, etc., cela ne se limite pas à eux seuls, comme nous le verrons dans l’exemple du prochain paragraphe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les fichiers de sauvegarde peuvent contenir des copies de tous les fichiers sous la racine (ou même en dehors) du site web. Cela permet à l’attaquant de rapidement énumérer l’application entière, dont les pages non référérencées, le code source, les fichiers inclus, etc... par exemple, si vous avez oublié un fichier nommé ''myservlets.jar.old'' qui contient (une copie de sauvegarde de) vos classes de servlet implémentées, vous exposez beaucoup d’informations sensibles pouvant faire l’objet de décompilation ou de rétro-ingénierie. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Dans certains cas, éditer ou copier un fichier ne modifie pas l’extension de fichier mais modifie le nom du fichier. Cela arrive, par exemple dans les environnements Windows, où les opérations de copie de fichier génèrent des fichiers suffixés avec «-Copie» ou des versions locales de cette chaîne. Puisque l’extension de fichier reste inchangée, ce n’est pas le cas où le fichier exécutable est renvoyé comme texte en clair par le serveur web, donc pas un cas de divulgation de code source. Malgré tout, ces fichiers aussi sont dangereux car il y a une possibilité qu’ils contiennent une logique incorrecte ou obsolète et peuvent, s'ils sont accédés, déclencher des erreurs d’application, qui donnent de précieuses informations à l’attaquant, si le message d’erreur s’affiche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les fichiers journaux peuvent contenir des informations sensibles à propos des usages de l’application par les utilisateurs, par exemple les données sensibles passées en paramètre aux URL, les ID de session, les URL visités (qui peuvent divulguer d’autres contenus non référencés), etc... D’autres fichiers journaux (ex. les journaux ftp) peuvent contenir des informations sensibles à propos de la maintenance de l’application par les administrateurs système.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les copies instantanées de système de fichiers peuvent contenir des copies de code ayant des vulnérabilités corrigées dans les versions plus récentes. Par exemple, ''/.snapshot/monthly.1/view.php'' peut contenir une vulnérabilité de type « traversée de répertoire » qui a été corrigée dans ''/view.php'' mais qui peut toujours être exploitée par celui qui trouve la vieille version du fichier. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester==&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
Le test des fichiers non référencés utilise à la fois des techniques manuelles et automatiques et typiquement combine les suivantes : &lt;br /&gt;
&lt;br /&gt;
==== Déductions du schéma de nommage du contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Dénombrer toutes les pages et les fonctionnalités de l’application. Cela peut être fait manuellement avec un navigateur ou en utilisant un outil d’exploration (« spidering ») d’application. La plupart des applications utilisent un schéma de nommage identifiable, et organisent les ressources en pages et répertoires en utilisant des mots décrivant leurs fonctions. A partir du schéma de nommage utilisé pour le contenu publié, il est souvent possible d’en déduire le nom et l’emplacement des fichiers non référencés. Par exemple, si on trouve une page ''viewuser.asp'', alors il faut chercher ''edituser.asp'',''adduser.asp'' et ''deleteuser.asp''. Si on trouve un répertoire ''/app/user'', il faut aussi chercher ''/app/admin'' et ''/app/manager''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Autres indices dans le contenu publié ====&lt;br /&gt;
&lt;br /&gt;
Beaucoup d’applications web laissent des indices dans leur contenu publié qui peuvent conduire à découvrir des fonctionnalités ou des pages cachées. Ces indices se retrouvent souvent dans le code source HTML et dans les fichiers JavaScript. Le code source de tous les contenus publiés devrait être revu manuellement pour identifier les indices laissés concernant les fonctionnalités et les pages.&lt;br /&gt;
Par exemple : &lt;br /&gt;
&lt;br /&gt;
Les commentaires et les sections commentées du code source par les programmeurs peuvent faire référence à du contenu caché : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;A HREF=&amp;quot;uploadfile.jsp&amp;quot;&amp;gt;Upload a document to the server&amp;lt;/A&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Link removed while bugs in uploadfile.jsp are fixed          --&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScript peut contenir des liens sur des pages qui sont uniquement émises dans l’interface graphique de l’utilisateur dans certaines circonstances : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var adminUser=false;&lt;br /&gt;
:&lt;br /&gt;
if (adminUser) menu.add (new menuItem (&amp;quot;Maintain users&amp;quot;, &amp;quot;/admin/useradmin.jsp&amp;quot;)); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les pages HTML peuvent contenir des FORMs qui ont été cachées en désactivant l’élément SUBMIT : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FORM action=&amp;quot;forgotPassword.jsp&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;INPUT type=&amp;quot;hidden&amp;quot; name=&amp;quot;userID&amp;quot; value=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;lt;INPUT type=&amp;quot;submit&amp;quot; value=&amp;quot;Forgot Password&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre source d’indices concernant les répertoires non référencés est le fichier ''/robots.txt'', fichier utilisé pour donner des instructions aux robots d’indexation du web : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User-agent: *&lt;br /&gt;
Disallow: /Admin&lt;br /&gt;
Disallow: /uploads&lt;br /&gt;
Disallow: /backup&lt;br /&gt;
Disallow: /~jbloggs&lt;br /&gt;
Disallow: /include &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Recherche à l'aveugle ====&lt;br /&gt;
&lt;br /&gt;
Dans sa forme la plus simple, il s'agit de lancer une recherche de noms de fichiers usuels via un moteur de requêtes dans le but de deviner quels sont les fichiers et les répertoires existant sur le serveur.&lt;br /&gt;
Ce &amp;quot;wrapper&amp;quot; script netcat lira une liste de mots à partir de stdin et réalisera une attaque élémentaire par conjecture ou &amp;quot;guessing attack&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
server=www.targetapp.com&lt;br /&gt;
port=80&lt;br /&gt;
&lt;br /&gt;
while read url&lt;br /&gt;
do&lt;br /&gt;
echo -ne &amp;quot;$url\t&amp;quot;&lt;br /&gt;
echo -e &amp;quot;GET /$url HTTP/1.0\nHost: $server\n&amp;quot; | netcat $server $port | head -1&lt;br /&gt;
done | tee outputfile &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suivant la configuration du serveur, on pourra remplacer la commande GET par une commande HEAD pour avoir des résultats plus rapides. On pourra ensuite faire une commande grep sur le fichier de sortie pour y rechercher des codes de réponse “interessants”. Le code de réponse &amp;quot;200&amp;quot; (OK) indique habituellement qu'une ressource valide a été trouvée (a priori, un serveur ne renvoie pas une page “not found” avec un code &amp;quot;200&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Rechercher aussi les codes &amp;quot;301&amp;quot; (Déplacé), &amp;quot;302&amp;quot; (Trouvé), &amp;quot;401&amp;quot; (Non autorisé), &amp;quot;403&amp;quot; (Interdit) and 500 (Erreur Interne), qui peuvent aussi référencer des ressources et des répertoires qui méritent plus d'investigation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'attaque élémentaire par conjecture doit s'effectuer sur le répertoire racine du serveur, le &amp;quot;webroot&amp;quot;, et aussi sur tous les répertoires identifiés par d'autres méthodes d'énumeration. &lt;br /&gt;
Des attaques par conjecture, plus avancées et efficaces, peuvent être réalisées comme ceci: &lt;br /&gt;
&lt;br /&gt;
* Identifier les extensions de fichiers utilisées dans les espaces connus de l'application (ex. jsp, aspx, html), et prendre une liste de mots de base ajoutés à ces extensions ou prendre une plus longue liste des extensions communes si les ressources le permettent). &lt;br /&gt;
&lt;br /&gt;
* Pour chaque fichier identifié par d'autres techniques d'énumeration, créer une liste de mots personnalisés dérivés du nom de fichier. &lt;br /&gt;
Prendre une liste des extensions de fichier usuels (incluant les ~, bak, txt, src, dev, old, inc, orig, copy, tmp, etc.) et utiliser chaque extension avant, après, et à la place de l'extension actuelle du fichier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Les opérations de copie de fichiers Windows generent des noms de fichiers postfixés par “-Copie“ ou par des versions localisées de cette chaîne, mais ne change pas l'extension du fichier. &lt;br /&gt;
Quoique les fichiers “-Copie“ ne divulguent pas habituellement le source code quand on y accède, ils peuvent néanmoins apporter des informations sensibles dans le cas où ils génèrent des erreurs quand on y accède.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Informations obtenues grâce aux vulnérabilités et aux mauvaises configurations du serveur ====&lt;br /&gt;
&lt;br /&gt;
Le cas le plus flagrant où une mauvaise configuration du serveur peut divulguer des pages non référencées est l'énumération des répertoires. &lt;br /&gt;
Rechercher dans tous les répertoires énumérés pour identifier ceux qui listent des répertoires. &lt;br /&gt;
&lt;br /&gt;
On trouve de nombreuses vulnerabilités sur des serveurs web personnels qui permettent aux attaquants de lister du contenu non référencé, comme par exemple: &lt;br /&gt;
&lt;br /&gt;
* Apache ?M=D directory listing vulnerability.&lt;br /&gt;
* Various IIS script source disclosure vulnerabilities. &lt;br /&gt;
* IIS WebDAV directory listing vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Utilisation de l'information accessible au public ====&lt;br /&gt;
&lt;br /&gt;
Les pages et les fonctionnalités, des applications web sur Internet, qui ne sont pas référencées par l'application elle-même peuvent être référencées par d'autres sources du domaine public. &lt;br /&gt;
Il existe plusieurs sources de ces références : &lt;br /&gt;
&lt;br /&gt;
* Les pages habituellement référencées peuvent toujours apparaître dans les archives des moteurs de recherche Internet. Par exemple, ''1998results.asp'' peut ne plus être lié à un site web d'entreprise, &lt;br /&gt;
mais cependant rester sur le serveur et dans les bases de données des moteurs de recherche. Ce vieux script peut contenir des vulnérabilités qui peuvent permettre de compromettre le site entier.&lt;br /&gt;
L'opérateur de recherche Google ''site:'' peut être utilisé pour faire une recherche sur un seul domaine choisi, comme dans : ''site:www.example.com''. Utiliser les moteurs de recherche de cette façon a permis un large éventail de techniques que vous pourrez trouver utiles et qui sont décrites  dans la section ''Google Hacking'' de ce Guide. Lisez-le pour affûter vos compétences de test via Google. &lt;br /&gt;
&lt;br /&gt;
les fichiers de sauvegarde ne sont probablement pas référencés par d'autres fichiers et ainsi ne doivent pas été indexées par Google mais s'ils se trouvent dans des répertoires accessibles par votre navigateur,le moteur de recherche peut en avoir connaissance.&lt;br /&gt;
&lt;br /&gt;
* De plus, Google et Yahoo conservent des versions en cache des pages trouvées par leurs robots. Même si ''1998results.asp'' a été supprimé du serveur cible, une version de ses résultats peut toujours être stockée par ces moteurs de recherche. Ces versions en cache peuvent contenir des références ou, des indices ou, un autre contenu additionnel caché, qui existent toujours sur le serveur. &lt;br /&gt;
&lt;br /&gt;
* Du contenu, non référencé par une application cible, peut être lié à des sites web d'un tiers. Par exemple, une application qui gère les paiements en ligne pour le compte d'un site marchand peut contenir une diversité de fonctionnalités sur mesure qui ne doivent, normallement, être retrouvées qu'en suivant les liens des sites web de leurs clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Contournement du filtrage des noms de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Comme les filtres de liste noire sont basés sur des expressions régulières, on peut parfois profiter de fonctionnalités d'expansions opaques de noms de fichiers qui fonctionnent d'une façon que le développeur n'imagine pas.&lt;br /&gt;
&lt;br /&gt;
Le testeur peut parfois exploiter la différence dans la façon dont les noms de fichiers sont analysés par l'application, le serveur web, et le système d'exploitation sous-jacent et ses conventions de nommage de fichiers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemple: Expansion des noms de fichiers sous Windows 8.3 &lt;br /&gt;
&amp;quot;c:\program files&amp;quot; devient &amp;quot;C:\PROGRA~1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
– Supprime les caractères incompatibles&lt;br /&gt;
– Convertit les espaces en caractère souligné bas &amp;quot;_&amp;quot;&lt;br /&gt;
- Prend les six premiers caractères du nom &lt;br /&gt;
– Ajoute “~&amp;lt;chiffre&amp;gt;” pour différencier les fichiers dont les noms ont les mêmes six premiers caractères &lt;br /&gt;
- Cette convention change après les 3 premières collisions de noms&lt;br /&gt;
– Tronque les extensions de fichiers à trois caractères&lt;br /&gt;
- Mets tous les caractères en lettres majuscules &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Réaliser un test en boite grise sur les vieux fichiers et les fichiers de sauvegarde nécessite l'examen des fichiers contenus dans les répertoires appartenant à l'ensemble des répertoires &lt;br /&gt;
web servis par le(s) serveur(s) internet de l'infrastructure de l'application. Théoriquement, l'examen devrait être réalisé manuellement pour être exhaustif. &lt;br /&gt;
&lt;br /&gt;
Quoiqu'il en soit, comme la plupart du temps les copies ou les sauvegardes de fichiers utilisent les mêmes conventions de nommage, la recherche peut être effectuée facilement par script. &lt;br /&gt;
Par exemple, les éditeurs nomment les copies de sauvegardes avec une extension reconnaissable et les humains tendent à les nommer en .old ou une autre extension similaire prédictible.&lt;br /&gt;
 &lt;br /&gt;
Uune bonne stratégie consiste à planifier une tâche de fond périodique à la recherche de fichiers avec des extensions qui les identifient comme de probables copies ou des sauvegardes de fichiers&lt;br /&gt;
et à faire aussi des vérifications manuelles sur des périodes plus longues.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Les outils d'évaluation de vulnérabilités tendent à inclure des vérifications pour repérer les répertoires web avec des noms standard (tels que “admin”, “test”, “backup”, etc.), et à remonter tout répertoire web qui autorise l'indexation. &lt;br /&gt;
&lt;br /&gt;
Si vous ne pouvez pas lister les répertoires, vous devriez essayer de vérifier les extensions probables des fichiers de sauvegarde.&lt;br /&gt;
Regarder par exemple Nessus (http://www.nessus.org), Nikto2(http://www.cirt.net/code/nikto.shtml) &lt;br /&gt;
ou les nouveaux dérivés Wikto (http://www.sensepost.com/research/wikto/),qui supportent les stratégies de base du Google hacking.&lt;br /&gt;
&lt;br /&gt;
* Robots d'exploration du Web &amp;quot;spider tools&amp;quot;: &lt;br /&gt;
&lt;br /&gt;
  wget (http://www.gnu.org/software/wget/, http://www.interlog.com/~tcharron/wgetwin.html); &lt;br /&gt;
  Sam Spade (http://www.samspade.org); &lt;br /&gt;
  Le proxy Spike comprend une fonction d'exploration de site web (http://www.immunitysec.com/spikeproxy.html); &lt;br /&gt;
  Xenu (http://home.snafu.de/tilman/xenulink.html); &lt;br /&gt;
  curl (http://curl.haxx.se). &lt;br /&gt;
  Certains de ces outils sont compris en standard dans les distributions Linux.&lt;br /&gt;
  &lt;br /&gt;
* Les utilitaires de développement Web ont généralement des outils pour identifier les liens cassés et les fichiers non référencés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Remediation ==&lt;br /&gt;
&lt;br /&gt;
Pour garantir une stratégie de protection efficace, les tests doivent être complétés par une politique de sécurité qui interdit clairement des pratiques dangereuses telles que :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Editer des fichiers directement sur le serveur web ou sur le système de fichiers de l'application. C'est vraiment une mauvaise habitude car il est prévisible que les éditeurs génèrent des fichiers de backup non souhaités. C'est étonnant de voir comme c'est fréquent, même dans les grandes organisations. Si vous avez absolument besoin d'éditer un fichier sur un serveur de production,assurez-vous de n'y laisser que ce qui est explicitement nécessaire, et considérez que vous le faites à vos propres risques.&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
* Vérifier soigneusement toute autre acticité réalisée sur le système de fichiers exposé par le serveur web, telles que les activités d'administration. &lt;br /&gt;
Par exemple, si vous avez occasionnellement besoin de faire une &amp;quot;copie instantanée&amp;quot; de quelques répertoires (ce que vous devriez pas faire en production), vous pouvez être tenté de les zipper d'abord. &lt;br /&gt;
Faites attention de ne pas oublier de ne pas laisser l'archive derrière vous.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Une politique de gestion de configuration devrait permettre de ne pas laisser traîner des fichiers obsolètes ou non référencés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les applications devraient être concues pour ne pas créer (ou s'appuyer sur) des fichiers stockés sous l'arborescence de répertoires mis à disposition par le serveur web. Les fichiers de données, de trace, de configuration, etc..., devraient être stockés dans des répertoires inacessibles au serveur web, pour contrer les possibilités de divulgation d'information (pas pour mentionner des modifications de données si les permissions sur les répertoires web permettent d'écrire).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Les &amp;quot;copies instantanées&amp;quot; ou &amp;quot;snapshot&amp;quot; de système de fichiers ne devraient pas être accessibles par le web si l'emplacement du document est sur un système de fichiers utilisant cette technologie. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configurer votre serveur web pour refuser l'accès à de tels répertoires, par exemple, sous apache une directive &amp;lt;location&amp;gt;, comme indiqué ci-dessous, devrait être mise en place :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Location ~ &amp;quot;.snapshot&amp;quot;&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201768</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201768"/>
				<updated>2015-10-06T18:48:44Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management, Asset Security,&lt;br /&gt;
Security Engineering, Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP TEN 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP 10 2013 en Français]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the OWASP Testing Guide v4 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.4 Revue des fichiers anciens, non references, ou de sauvegarde pour recherche d'informations sensibles (OTG-CONFIG-004)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201513</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201513"/>
				<updated>2015-10-02T10:32:44Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management, Asset Security,&lt;br /&gt;
Security Engineering, Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP TEN 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP 10 2013 en Français]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the OWASP Testing Guide v4 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201512</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201512"/>
				<updated>2015-10-02T10:32:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management,Asset Security,&lt;br /&gt;
Security Engineering,Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP TEN 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP 10 2013 en Français]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the OWASP Testing Guide v4 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201510</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201510"/>
				<updated>2015-10-02T10:21:15Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management,Asset Security,&lt;br /&gt;
Security Engineering,Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the «OWASP TOP 10 2013» :&lt;br /&gt;
[http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013%20-%20French.pdf OWASP TOP TEN 2013 Français]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contribution to French translation of the OWASP Testing Guide v4 :&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201506</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201506"/>
				<updated>2015-10-02T09:12:04Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management,Asset Security,&lt;br /&gt;
Security Engineering,Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master «Security,Cryptology and Coding of Information Systems»&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
French translation of the Testing Guide v4 :&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201505</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201505"/>
				<updated>2015-10-02T09:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge : Security and Risk Management,Asset Security,&lt;br /&gt;
Security Engineering,Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master in «Security,Cryptology and Coding of Information Systems»&lt;br /&gt;
&lt;br /&gt;
French translation of the Testing Guide v4 : &lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=201504</id>
		<title>4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=201504"/>
				<updated>2015-10-02T09:09:11Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Il faut faire une revue des commentaires et des métadonnées pour déterminer s’il y a des fuites d’information.&lt;br /&gt;
&lt;br /&gt;
== Objectifs du test ==&lt;br /&gt;
&lt;br /&gt;
La revue des commentaires et métadonnées permet de mieux comprendre l’application et de trouver d’éventuelles fuites d’information. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester ==&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;pre&amp;gt; &amp;lt;!-- &amp;lt;/pre&amp;gt; et sont terminées par : &amp;lt;pre&amp;gt; --&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Mary&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Peter&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Joe&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Query: SELECT id, name FROM app.users WHERE active='1' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le testeur peut même trouver des informations telles que : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Use the DB administrator password for testing:  f@keP@a$$w0rD --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier la version HTML et les URLs de Définition de Type de Document (DTD) pour connaître les versions applicables :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
* &amp;quot;strict.dtd&amp;quot; -- default strict DTD &lt;br /&gt;
* &amp;quot;loose.dtd&amp;quot; -- loose DTD &lt;br /&gt;
* &amp;quot;frameset.dtd&amp;quot; -- DTD for frameset documents &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;author&amp;quot; content=&amp;quot;Andrew Muller&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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». &lt;br /&gt;
&lt;br /&gt;
Ainsi la balise :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;expires&amp;quot; content=&amp;quot;Fri, 21 Dec 2012 12:34:56 GMT&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
générera dans l’entête HTTP de réponse : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
expires: Fri, 21 Dec 2012 12:34:56 GMT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et la balise suivante : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;cache-control&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
génèrera dans l’entête HTTP : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cache-control: no-cache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Une balise META usuelle, mais non conforme aux lignes directrices sur l'accessibilité des contenus Web(WCAG), est &amp;quot;refresh&amp;quot; : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;refresh&amp;quot; content=&amp;quot;15; URL=https://www.owasp.org/index.html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;keywords&amp;quot; lang=&amp;quot;en-us&amp;quot; content=&amp;quot;OWASP, security, sunshine, lollipops&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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. &lt;br /&gt;
La balise suivante informe les robots de ne pas indexer et de ne pas suivre les liens sur les pages HTML contenant cette balise :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;robots&amp;quot; content=&amp;quot;none&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Non applicable. &lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Wget &lt;br /&gt;
* Fonction du navigateur &amp;quot;voir le code source&amp;quot;&lt;br /&gt;
* Eyeballs &lt;br /&gt;
* cURL&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
&lt;br /&gt;
[1] http://www.w3.org/PICS/  PICS, plate-forme de sélection du contenu Internet&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.w3.org/2009/09/powder-pr.html.fr POWDER, protocole de description des ressources du Web&lt;br /&gt;
&lt;br /&gt;
'''Livres Blancs''' &lt;br /&gt;
[1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (pour petits appareils)&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://www.w3.org/TR/html5/ HTML version 5&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=201503</id>
		<title>4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=201503"/>
				<updated>2015-10-02T09:07:43Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Il faut faire une revue des commentaires et des métadonnées pour déterminer s’il y a des fuites d’information.&lt;br /&gt;
&lt;br /&gt;
== Objectifs du test ==&lt;br /&gt;
&lt;br /&gt;
La revue des commentaires et métadonnées permet de mieux comprendre l’application et de trouver d’éventuelles fuites d’information. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester ==&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;pre&amp;gt; &amp;lt;!-- &amp;lt;/pre&amp;gt; et sont terminées par &amp;lt;pre&amp;gt; --&amp;gt;&amp;lt;/pre&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Mary&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Peter&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Joe&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Query: SELECT id, name FROM app.users WHERE active='1' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le testeur peut même trouver des informations telles que : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Use the DB administrator password for testing:  f@keP@a$$w0rD --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier la version HTML et les URLs de Définition de Type de Document (DTD) pour connaître les versions applicables :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
* &amp;quot;strict.dtd&amp;quot; -- default strict DTD &lt;br /&gt;
* &amp;quot;loose.dtd&amp;quot; -- loose DTD &lt;br /&gt;
* &amp;quot;frameset.dtd&amp;quot; -- DTD for frameset documents &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;author&amp;quot; content=&amp;quot;Andrew Muller&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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». &lt;br /&gt;
&lt;br /&gt;
Ainsi la balise :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;expires&amp;quot; content=&amp;quot;Fri, 21 Dec 2012 12:34:56 GMT&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
générera dans l’entête HTTP de réponse : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
expires: Fri, 21 Dec 2012 12:34:56 GMT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et la balise suivante : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;cache-control&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
génèrera dans l’entête HTTP : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cache-control: no-cache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Une balise META usuelle, mais non conforme aux lignes directrices sur l'accessibilité des contenus Web(WCAG), est &amp;quot;refresh&amp;quot; : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;refresh&amp;quot; content=&amp;quot;15; URL=https://www.owasp.org/index.html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;keywords&amp;quot; lang=&amp;quot;en-us&amp;quot; content=&amp;quot;OWASP, security, sunshine, lollipops&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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. &lt;br /&gt;
La balise suivante informe les robots de ne pas indexer et de ne pas suivre les liens sur les pages HTML contenant cette balise :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;robots&amp;quot; content=&amp;quot;none&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Non applicable. &lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Wget &lt;br /&gt;
* Fonction du navigateur &amp;quot;voir le code source&amp;quot;&lt;br /&gt;
* Eyeballs &lt;br /&gt;
* cURL&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
&lt;br /&gt;
[1] http://www.w3.org/PICS/  PICS, plate-forme de sélection du contenu Internet&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.w3.org/2009/09/powder-pr.html.fr POWDER, protocole de description des ressources du Web&lt;br /&gt;
&lt;br /&gt;
'''Livres Blancs''' &lt;br /&gt;
[1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (pour petits appareils)&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://www.w3.org/TR/html5/ HTML version 5&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=201502</id>
		<title>4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=201502"/>
				<updated>2015-10-02T08:59:08Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Il faut faire une revue des commentaires et des métadonnées pour déterminer s’il y a des fuites d’information.&lt;br /&gt;
&lt;br /&gt;
== Objectifs du test ==&lt;br /&gt;
&lt;br /&gt;
La revue des commentaires et métadonnées permet de mieux comprendre l’application et de trouver d’éventuelles fuites d’information. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester ==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;&amp;lt;!--&amp;quot; et terminées par &amp;quot;--&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Mary&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Peter&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Joe&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Query: SELECT id, name FROM app.users WHERE active='1' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le testeur peut même trouver des informations telles que : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Use the DB administrator password for testing:  f@keP@a$$w0rD --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier la version HTML et les URLs de Définition de Type de Document (DTD) pour connaître les versions applicables :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
* &amp;quot;strict.dtd&amp;quot; -- default strict DTD &lt;br /&gt;
* &amp;quot;loose.dtd&amp;quot; -- loose DTD &lt;br /&gt;
* &amp;quot;frameset.dtd&amp;quot; -- DTD for frameset documents &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;author&amp;quot; content=&amp;quot;Andrew Muller&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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». &lt;br /&gt;
&lt;br /&gt;
Ainsi la balise :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;expires&amp;quot; content=&amp;quot;Fri, 21 Dec 2012 12:34:56 GMT&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
générera dans l’entête HTTP de réponse : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
expires: Fri, 21 Dec 2012 12:34:56 GMT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et la balise suivante : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;cache-control&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
génèrera dans l’entête HTTP : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cache-control: no-cache&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Une balise META usuelle, mais non conforme aux lignes directrices sur l'accessibilité des contenus Web(WCAG), est &amp;quot;refresh&amp;quot; : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;refresh&amp;quot; content=&amp;quot;15; URL=https://www.owasp.org/index.html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;keywords&amp;quot; lang=&amp;quot;en-us&amp;quot; content=&amp;quot;OWASP, security, sunshine, lollipops&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
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. &lt;br /&gt;
La balise suivante informe les robots de ne pas indexer et de ne pas suivre les liens sur les pages HTML contenant cette balise :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;META name=&amp;quot;robots&amp;quot; content=&amp;quot;none&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Non applicable. &lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Wget &lt;br /&gt;
* Fonction du navigateur &amp;quot;voir le code source&amp;quot;&lt;br /&gt;
* Eyeballs &lt;br /&gt;
* cURL&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
&lt;br /&gt;
[1] http://www.w3.org/PICS/  PICS, plate-forme de sélection du contenu Internet&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.w3.org/2009/09/powder-pr.html.fr POWDER, protocole de description des ressources du Web&lt;br /&gt;
&lt;br /&gt;
'''Livres Blancs''' &lt;br /&gt;
[1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01&amp;lt;br&amp;gt;&lt;br /&gt;
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (pour petits appareils)&amp;lt;br&amp;gt;&lt;br /&gt;
[3] http://www.w3.org/TR/html5/ HTML version 5&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=201501</id>
		<title>4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.2.5_Revue_des_commentaires_et_metadonnees_des_pages_web_pour_recherche_de_fuite_d%27information_(OTG-INFO-005)&amp;diff=201501"/>
				<updated>2015-10-02T08:54:10Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Created page with &amp;quot;{{Template:OWASP Testing Guide v4}}  == Sommaire ==  C’est très courant, et même recommandé, que les programmeurs mettent des commentaires détaillés et des métadonnée...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Il faut faire une revue des commentaires et des métadonnées pour déterminer s’il y a des fuites d’information.&lt;br /&gt;
&lt;br /&gt;
== Objectifs du test ==&lt;br /&gt;
&lt;br /&gt;
La revue des commentaires et métadonnées permet de mieux comprendre l’application et de trouver d’éventuelles fuites d’information. &lt;br /&gt;
&lt;br /&gt;
== Comment Tester ==&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;&amp;lt;!--&amp;quot; et terminées par &amp;quot;--&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Noire ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Mary&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Peter&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Joe&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Query: SELECT id, name FROM app.users WHERE active='1' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le testeur peut même trouver des informations telles que : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Use the DB administrator password for testing:  f@keP@a$$w0rD --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier la version HTML et les URLs de Définition de Type de Document (DTD) pour connaître les versions applicables :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
* &amp;quot;strict.dtd&amp;quot; -- default strict DTD &lt;br /&gt;
* &amp;quot;loose.dtd&amp;quot; -- loose DTD &lt;br /&gt;
* &amp;quot;frameset.dtd&amp;quot; -- DTD for frameset documents &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;author&amp;quot; content=&amp;quot;Andrew Muller&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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». &lt;br /&gt;
&lt;br /&gt;
Ainsi la balise :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;expires&amp;quot; content=&amp;quot;Fri, 21 Dec 2012 12:34:56 GMT&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
générera dans l’entête HTTP de réponse : &lt;br /&gt;
&lt;br /&gt;
expires: Fri, 21 Dec 2012 12:34:56 GMT&lt;br /&gt;
&lt;br /&gt;
Et la balise suivante : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;cache-control&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
génèrera dans l’entête HTTP : &lt;br /&gt;
&lt;br /&gt;
cache-control: no-cache&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Une balise META usuelle, mais non conforme aux lignes directrices sur l'accessibilité des contenus Web(WCAG), est &amp;quot;refresh&amp;quot; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META http-equiv=&amp;quot;refresh&amp;quot; content=&amp;quot;15; URL=https://www.owasp.org/index.html&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;keywords&amp;quot; lang=&amp;quot;en-us&amp;quot; content=&amp;quot;OWASP, security, sunshine, lollipops&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
La balise suivante informe les robots de ne pas indexer et de ne pas suivre les liens sur les pages HTML contenant cette balise :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;robots&amp;quot; content=&amp;quot;none&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
=== Test en Boite Grise ===&lt;br /&gt;
&lt;br /&gt;
Non applicable. &lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
&lt;br /&gt;
* Wget &lt;br /&gt;
* Fonction du navigateur &amp;quot;voir le code source&amp;quot;&lt;br /&gt;
* Eyeballs &lt;br /&gt;
* cURL&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
&lt;br /&gt;
[1] http://www.w3.org/PICS/  PICS, plate-forme de sélection du contenu Internet&lt;br /&gt;
[2] http://www.w3.org/2009/09/powder-pr.html.fr POWDER, protocole de description des ressources du Web&lt;br /&gt;
&lt;br /&gt;
'''Livres Blancs''' &lt;br /&gt;
[1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01 &lt;br /&gt;
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (pour petits appareils) &lt;br /&gt;
[3] http://www.w3.org/TR/html5/ HTML version 5&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201500</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201500"/>
				<updated>2015-10-02T08:53:32Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge &amp;amp; skills : Security and Risk Management,Asset Security,&lt;br /&gt;
Security Engineering,Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master in «Security,Cryptology and Coding of Information Systems»&lt;br /&gt;
&lt;br /&gt;
French translation of the Testing Guide : &lt;br /&gt;
&lt;br /&gt;
[[4.2.5 Revue des commentaires et metadonnees des pages web pour recherche de fuite d'information (OTG-INFO-005)]]&lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=4.3.6_Test_des_Methodes_HTTP_(OTG-CONFIG-006)&amp;diff=201432</id>
		<title>4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=4.3.6_Test_des_Methodes_HTTP_(OTG-CONFIG-006)&amp;diff=201432"/>
				<updated>2015-10-01T20:40:54Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: Created page with &amp;quot;{{Template:OWASP Testing Guide v4}}  == Sommaire == HTTP propose plusieurs méthodes pour réaliser des actions sur le serveur web. Plusieurs de ces méthodes sont prévues po...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Sommaire ==&lt;br /&gt;
HTTP propose plusieurs méthodes pour réaliser des actions sur le serveur web. Plusieurs de ces méthodes sont prévues pour aider le développeur à déployer et à tester les applications HTTP. Si le serveur est mal configuré, ces méthodes HTTP peuvent être utilisées dans des buts malveillants. On examinera aussi le Cross Site Tracing (XST), une sorte d’attaque de type Cross Site Scripting (XSS) qui utilise la méthode HTTP TRACE.&amp;lt;br&amp;gt;&lt;br /&gt;
Bien que GET et POST soient, de loin, les méthodes les plus employées pour accéder aux informations des serveurs web, HTTP en permet plusieurs autres moins connues. La version HTTP/1.1, qui est le standard actuel, est décrite par le RFC 2616 (ou, les RFC 723x depuis 2014). &lt;br /&gt;
En particulier, le RFC 7231 décrit les huit méthodes suivantes : &lt;br /&gt;
* GET&lt;br /&gt;
* HEAD &lt;br /&gt;
* POST &lt;br /&gt;
* PUT &lt;br /&gt;
* DELETE &lt;br /&gt;
* CONNECT&lt;br /&gt;
* OPTIONS &lt;br /&gt;
* TRACE&lt;br /&gt;
 &lt;br /&gt;
Certaines de ces méthodes présentent des risques pour les applications web car elles permettent à un attaquant de modifier des fichiers stockés sur le serveur web et, dans certains scénarios, de voler des justificatifs d’accès d’utilisateurs légitimes. En particulier, les méthodes, qui devraient être désactivées, sont les suivantes : &lt;br /&gt;
* PUT: Cette méthode permet à un client de charger un nouveau fichier sur le serveur web. Un attaquant peut l’exploiter pour charger du contenu malveillant (ex. un fichier .asp qui exécute une commande en lançant cmd.exe) ou, simplement en utilisant le serveur de la victime comme un dépôt de fichiers.&lt;br /&gt;
* DELETE: Cette méthode permet à un client de supprimer un fichier sur le serveur web. Un attaquant peut l’exploiter comme moyen simple et direct pour défigurer un site web ou concevoir une attaque de Déni de Service-DoS.&lt;br /&gt;
* CONNECT: Cette méthode peut permettre à un client d’utiliser un serveur web comme proxy. &lt;br /&gt;
* TRACE: Cette méthode renvoie en écho au client toute chaîne qui a été envoyée au serveur et est utilisée principalement pour du débogage. Cette méthode, supposée à l’origine être inoffensive, peut être utilisée pour préparer une attaque de type “Cross Site Tracing”, attaque découverte par Jeremiah Grossman (voir le lien en bas de page).&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Si une application a besoin d’au moins une de ces méthodes, comme les services Web REST (qui peuvent nécessiter PUT ou DELETE), il est important de vérifier que l’utilisation qui en est faite est correctement limitée à des utilisateurs approuvés et effectuée dans un environnement sûr. &lt;br /&gt;
&lt;br /&gt;
=== Méthodes HTTP arbitraires ===&lt;br /&gt;
Arshan Dabirsiaghi (voir les liens) a découvert que beaucoup de frameworks d’applications web permettent d’utiliser des méthodes HTTP ciblées ou arbitraires pour contourner l’environnement de vérification de contrôle d’accès : &lt;br /&gt;
* Beaucoup de frameworks et de  langages gèrent la méthode &amp;quot;HEAD&amp;quot; comme une requête &amp;quot;GET&amp;quot;, bien que la réponse à la requête &amp;quot;HEAD&amp;quot; ne devrait pas contenir de corps de message. Ainsi, si on a mis en place une contrainte de sécurité sur les requêtes &amp;quot;GET&amp;quot; telle que, seuls les utilisateurs authentifiés peuvent accéder à une servlet ou à une ressource particulière, cette contrainte sera contournée dans l’appel à la méthode &amp;quot;HEAD&amp;quot;. Cela permet, à l’aveugle et sans autorisation, d’accéder à toute requête &amp;quot;GET&amp;quot; privilégiée.&lt;br /&gt;
* Certains frameworks autorisent que des méthodes HTTP arbitraires telles que &amp;quot;JEFF&amp;quot; ou &amp;quot;CATS&amp;quot; soient utilisées sans aucune limitation. Celles-ci sont traitées comme des méthodes &amp;quot;GET&amp;quot; et se trouvent, dans certains langages et frameworks, ne pas être soumises aux vérifications d’accès fondées sur les rôles des méthodes standard, permettant, une fois encore, un accès, à l’aveugle et sans autorisation, à des ressources &amp;quot;GET&amp;quot; privilégiées. &lt;br /&gt;
Dans bien des cas, le code qui vérifiera explicitement que la méthode est un &amp;quot;GET&amp;quot; ou un &amp;quot;POST&amp;quot;, sera sûr.&lt;br /&gt;
&lt;br /&gt;
== Comment Tester ==&lt;br /&gt;
'''Découvrir les Méthodes Supportées'''&amp;lt;br&amp;gt;&lt;br /&gt;
Pour réaliser ce test, le testeur devra savoir quelles méthodes HTTP sont supportées par le serveur à évaluer. La méthode HTTP &amp;quot;OPTIONS&amp;quot; donne au testeur un moyen direct et efficace pour le faire. Le RFC 2616 indique ainsi que «La méthode &amp;quot;OPTIONS&amp;quot;  est une demande d’information sur les options de communications supportées dans la séquence des requêtes/réponses déterminées par l’URI de la requête.»&lt;br /&gt;
La méthode de test est très simple et une commande netcat (ou telnet) suffit : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nc www.victim.com 80 &lt;br /&gt;
OPTIONS / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Server: Microsoft-IIS/5.0&lt;br /&gt;
Date: Tue, 31 Oct 2006 08:00:29 GMT&lt;br /&gt;
Connection: close&lt;br /&gt;
Allow: GET, HEAD, POST, TRACE, OPTIONS&lt;br /&gt;
Content-Length: 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir dans cet exemple, OPTIONS renvoie la liste des méthodes supportées par le serveur web, et on remarque ici que la méthode &amp;quot;TRACE&amp;quot; est activée. Le danger, que cela représente, est illustré dans la section suivante.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Test de vulnérabilité XST'''&amp;lt;br&amp;gt;&lt;br /&gt;
Note: pour bien comprendre la logique et le but de l’attaque XST, il faut être familier des attaques de type Cross Site Scripting (XSS). &lt;br /&gt;
La méthode &amp;quot;TRACE&amp;quot;, apparemment inoffensive, peut être utilisée dans certains scénarios pour voler des justificatifs d’accès d’utilisateurs légitimes. Cette technique d’attaque a été découverte par Jeremiah Grossman en 2003, dans une tentative de contournement de la balise  HTTPOnly que Microsoft a introduite dans Internet Explorer 6 SP1 pour empêcher Javascript d’accéder aux cookies. En effet, l’un des motifs récurrents d’attaques de type XSS (Cross Site Scripting) concerne l’accès à l’objet document.cookie qui est renvoyé à un serveur web contrôlé par l’attaquant pour qu’il puisse détourner la session de la victime. Marquer un cookie avec l’attribut HTTPOnly interdit à Javascript d’y accéder, le protégeant ainsi d’un envoi à une partie tierce. Malgré cela, même dans ce cas, la méthode &amp;quot;TRACE&amp;quot;  peut être utilisée pour contourner cette protection et accéder aux cookies.&lt;br /&gt;
Comme indiqué précédemment, TRACE renvoie simplement chaque chaîne de caractères envoyée au serveur web. Pour vérifier sa présence sur le serveur (ou confirmer les résultats de la requête OPTIONS précédente), le testeur peut effectuer la commande suivante :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nc www.victim.com 80&lt;br /&gt;
TRACE / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Server: Microsoft-IIS/5.0&lt;br /&gt;
Date: Tue, 31 Oct 2006 08:01:48 GMT&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: message/http&lt;br /&gt;
Content-Length: 39&lt;br /&gt;
&lt;br /&gt;
TRACE / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le corps de la réponse est une copie exacte de notre requête initiale, ce qui signifie que la cible accepte la méthode &amp;quot;TRACE&amp;quot;. Alors, où se cache le danger ? Si le testeur indique au navigateur d’envoyer une requête TRACE au serveur web et si le navigateur a un cookie pour ce domaine, ce cookie sera automatiquement inclus dans les entêtes de requêtes et donc renvoyé en écho dans la réponse. &lt;br /&gt;
A partir de là, la chaîne représentant le cookie sera accessible par JavaScript et, il sera finalement possible de l’envoyer à une partie tierce, même s’il a l’attribut HTTPOnly. &lt;br /&gt;
&lt;br /&gt;
Il y a différents moyens pour qu’un navigateur envoie une requête &amp;quot;TRACE&amp;quot;, en particulier, il y a le contrôle ActiveX XMLHttpRequest dans Internet Explorer et  XMLDOM dans Mozilla. Quoiqu’il en soit, pour des raisons de sécurité, le navigateur ne peut initier une connexion que sur le domaine où se trouve le script malveillant. C’est un facteur qui en limite les possibilités car l’attaquant devra combiner la méthode &amp;quot;TRACE&amp;quot;  avec une autre vulnérabilité pour réaliser cette attaque.&lt;br /&gt;
Un attaquant a deux moyens de réussir une attaque de type Cross Site Tracing : &lt;br /&gt;
* Profiter d’une autre vulnérabilité du serveur : l’attaquant injecte un code JavaScript malveillant, qui contient une requête &amp;quot;TRACE&amp;quot;, dans l’application vulnérable comme pour une attaque standard de type XSS-Cross Site Scripting&lt;br /&gt;
* Profiter d’une autre vulnérabilité du client : l’attaquant crée un site web malveillant qui contient le code JavaScript hostile et exploite une vulnérabilité inter-domaine du navigateur de la victime, de façon à ce que le code JavaScript réalise avec succès une connexion au site qui supporte la méthode &amp;quot;TRACE&amp;quot;  et qui a généré le cookie que l’attaquant convoite. &lt;br /&gt;
&lt;br /&gt;
Vous pourrez trouver plus d’informations, ainsi que des exemples de code, dans le document original de Jeremiah Grossman.&lt;br /&gt;
&lt;br /&gt;
Note du traducteur : Depuis la divulgation de cette attaque, les navigateurs récents stoppent les requêtes &amp;quot;TRACE&amp;quot;  effectuées via Javascript.&lt;br /&gt;
&lt;br /&gt;
=== Test des Méthodes HTTP arbitraires ===&lt;br /&gt;
Chercher une page, avec une contrainte de sécurité qui devrait normalement conduire à une redirection &amp;quot;302&amp;quot; vers une page de connexion, ou à une connexion directe. L’URL de test de l’exemple fonctionne ainsi, comme beaucoup d’applications web. &lt;br /&gt;
Néanmoins, si le testeur reçoit une réponse &amp;quot;200&amp;quot; qui n’est pas une page de connexion, il est possible de contourner l’authentification et donc les autorisations d’accès :&lt;br /&gt;
$ nc www.example.com 80&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
JEFF / HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Mon, 18 Aug 2008 22:38:40 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Set-Cookie: PHPSESSID=K53QW...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si le framework, le pare-feu ou l’application ne prend pas en compte pas la méthode  &amp;quot;JEFF&amp;quot;, il devrait envoyer une page d’erreur (ou, mieux une page d’erreur indiquant &amp;quot;405 Not Allowed&amp;quot; ou &amp;quot;501 Not implemented&amp;quot;). S’il effectue la requête, il est vulnérable à ce problème.&lt;br /&gt;
Si le testeur pense que le système est vulnérable à ce problème, il doit tenter une attaque de type CSRF (Falsification de requête intersites) pour l’exploiter au maximum : &lt;br /&gt;
* FOOBAR /admin/createUser.php?member=myAdmin &lt;br /&gt;
* JEFF /admin/changePw.php?member=myAdmin&amp;amp;passwd=foo123&amp;amp;confirm=foo123 &lt;br /&gt;
* CATS /admin/groupEdit.php?group=Admins&amp;amp;member=myAdmin&amp;amp;action=add &lt;br /&gt;
&lt;br /&gt;
Avec de la chance, en utilisant les trois commandes ci-dessus, -modifiées pour s’adapter à l’application et aux besoins du test- un nouvel utilisateur sera créé avec un mot de passe choisi et des droits administrateur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test de Contournement du contrôle d’accès de la requête HEAD ===&lt;br /&gt;
Chercher une page, avec une contrainte de sécurité qui devrait normalement conduire à une redirection &amp;quot;302&amp;quot; vers une page de connexion, ou à une connexion directe. L’URL de test de l’exemple fonctionne ainsi, comme beaucoup d’applications web. &lt;br /&gt;
Néanmoins, si le testeur reçoit une réponse &amp;quot;200&amp;quot; qui n’est pas une page de connexion, il est possible de contourner l’authentification et donc les autorisations d’accès :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nc www.example.com 80&lt;br /&gt;
HEAD /admin HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Mon, 18 Aug 2008 22:44:11 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Set-Cookie: PHPSESSID=pKi...; path=/; HttpOnly&lt;br /&gt;
Expires: Thu, 19 Nov 1981 08:52:00 GMT&lt;br /&gt;
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0&lt;br /&gt;
Pragma: no-cache&lt;br /&gt;
Set-Cookie: adminOnlyCookie1=...; expires=Tue, 18-Aug-2009 22:44:31 GMT; domain=www.example.com&lt;br /&gt;
Set-Cookie: adminOnlyCookie2=...; expires=Mon, 18-Aug-2008 22:54:31 GMT; domain=www.example.com&lt;br /&gt;
Set-Cookie: adminOnlyCookie3=...; expires=Sun, 19-Aug-2007 22:44:30 GMT; domain=www.example.com&lt;br /&gt;
Content-Language: EN&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: text/html; charset=ISO-8859-1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si le testeur reçoit un &amp;quot;405 Method not allowed&amp;quot; ou un &amp;quot;501 Method Unimplemented&amp;quot;, la cible (application / framework / langage / système / parefeu) fonctionne correctement. &lt;br /&gt;
S’il reçoit un &amp;quot;200&amp;quot; en retour, et que la réponse ne contient pas de corps de message, c’est que l’application a accepté la requête sans effectuer de contrôle d’authentification et d’autorisation ce qui garantit de pouvoir effectuer des tests complémentaires. &lt;br /&gt;
&lt;br /&gt;
Si le testeur pense que le système est vulnérable à ce problème, il doit tenter une attaque de type CSRF (falsification de requête intersites) pour l’exploiter au maximum : &lt;br /&gt;
* FOOBAR /admin/createUser.php?member=myAdmin &lt;br /&gt;
* JEFF /admin/changePw.php?member=myAdmin&amp;amp;passwd=foo123&amp;amp;confirm=foo123 &lt;br /&gt;
* CATS /admin/groupEdit.php?group=Admins&amp;amp;member=myAdmin&amp;amp;action=add &lt;br /&gt;
&lt;br /&gt;
Avec de la chance, en utilisant les trois commandes ci-dessus, -modifiées pour s’adapter à l’application et aux besoins du test- un nouvel utilisateur sera créé avec un mot de passe choisi et des droits administrateur, tout cela avec la soumission de requêtes à l’aveugle.&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
* NetCat - http://nc110.sourceforge.net &lt;br /&gt;
* cURL - http://curl.haxx.se/ &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Livres Blancs'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Le RFC 2616: &amp;quot;Hypertext Transfer Protocol -- HTTP/1.1&amp;quot; &lt;br /&gt;
* Les RFC 2109 et RFC 2965 &amp;quot;HTTP State Management Mechanism&amp;quot; &lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Cross Site Tracing (XST)&amp;quot; - http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf &lt;br /&gt;
* Amit Klein: &amp;quot;une variante d’attaque XS(T) qui peut permettre, dans certains cas, de se passer de TRACE&amp;quot; - http://www.securityfocus.com/archive/107/308433 &lt;br /&gt;
* Arshan Dabirsiaghi: &amp;quot;Contourner VBAAC  avec HTTP Verb Tampering&amp;quot; - http://static.swpag.info/download/Bypassing_VBAAC_with_HTTP_Verb_Tampering.pdf&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201431</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201431"/>
				<updated>2015-10-01T20:39:36Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge &amp;amp; skills : Security and Risk Management,Asset Security,&lt;br /&gt;
Security Engineering,Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master in «Security,Cryptology and Coding of Information Systems»&lt;br /&gt;
&lt;br /&gt;
French translation of the Testing Guide: &lt;br /&gt;
&lt;br /&gt;
[[4.3.6 Test des Methodes HTTP (OTG-CONFIG-006)]]&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201396</id>
		<title>User:Vall</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Vall&amp;diff=201396"/>
				<updated>2015-10-01T09:24:46Z</updated>
		
		<summary type="html">&lt;p&gt;Vall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information Security Consultant&lt;br /&gt;
&lt;br /&gt;
Previous experience : Chief Information Security Officer for 6 years&lt;br /&gt;
and more than 20 years in IT development, audit, computer operation, &lt;br /&gt;
communication and network security, security operations&lt;br /&gt;
 &lt;br /&gt;
Knowledge &amp;amp; skills : Security and Risk Management,Asset Security,&lt;br /&gt;
Security Engineering,Communications and Network Security, Security Operations, &lt;br /&gt;
Software Development Security &lt;br /&gt;
&lt;br /&gt;
CISSP-CISA- &lt;br /&gt;
Computer Engineer-&lt;br /&gt;
Master in «Security,Cryptology and Coding of Information Systems»&lt;/div&gt;</summary>
		<author><name>Vall</name></author>	</entry>

	</feed>