WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Les principales failles de sécurité des applications web actuelles, telles que recensées par l'OWASP: principes, parades et bonnes pratiques de développement

( Télécharger le fichier original )
par Guillaume HARRY
Conservatoire national des arts et métiers - Ingénieur 2012
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

4.4 Référence directe non sécurisée à un objet

4.4.1 Principe

Cette vulnérabilité existe simplement parce que les paramètres de requêtes ne sont pas vérifiés avant traitement. Si le paramètre vulnérable fait référence à un fichier, à une valeur dans une base de données, il suffit de reconstruire la requête avec une valeur de paramètre normalement interdite pour y avoir accès.

Cette faille peut avoir des impacts importants si un utilisateur mal intentionné obtient par ce biais des accès à des informations et des fonctionnalités pour lesquelles il n'a aucune autorisation.

4.4.2 Exemples d'attaque

Cette faille est une des bases de la vulnérabilité exploitée par XSS. En effet, dans les exemples d'attaques exposés précédemment (' voir paragraphe 3.2.2), les paramètres récupérés ne sont pas vérifiés. Par contre, si ces valeurs avaient été contrôlées, les caractères spéciaux n'auraient pas été autorisés, empêchant ainsi l'envoi de code frauduleux au navigateur.

Si les paramètres sont passés en paramètre d'un lien, un utilisateur malintentionné peut aisément modifier l'adresse pour accéder à des informations auxquelles il n'aurait pas dû avoir accès. L'exemple suivant reprend la table « comptes » (voir ' paragraphe 3.1.1) qui va être interrogée par un script PHP pour afficher le numéro de carte bancaire de l'utilisateur.

<?php //recuperation des parametres$nom = $_GET['proprietaire'];  //generation de la requete$requeteSQL = "SELECT numerocarte FROM comptes WHERE nom = '$nom'";                    //execution de la requete$reponse = mysql_query($requeteSQL);$resultat = mysql_fetch_assoc($reponse);//affichage du resultatecho "<tr><td> Votre numero de carte est :</td><td>";echo $resultat['numerocarte'];echo "</td></tr>";?>

Figure 18 - Script PHP pour l'affichage du numéro de carte

Si l'utilisateur malveillant saisit dans son navigateur l'adresse de cette page avec pour paramètre « nom=nom_de_la_victime », il a alors accès au numéro de carte bancaire qu'il n'aurait jamais du pouvoir voir.

4.4.3 Parade et bonnes pratiques

Pour protéger les données les plus confidentielles ou les fonctionnalités les plus avancées, le WASC recommande de demander à l'utilisateur de saisir à nouveau son identifiant et son mot avant de pouvoir y accéder. Ensuite il suffit de se baser sur ces valeurs pour construire les requêtes. Ainsi dans l'exemple de l'affichage du numéro de carte, le paramètre utilisé pour la recherche aurait été celui de la personne qui s'est authentifiée et non celui fournit en paramètre du lien.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Là où il n'y a pas d'espoir, nous devons l'inventer"   Albert Camus