Aujourd’hui, nous n’allons pas rentrer dans la technique du code mais dans les principes de la sécurité. Le but de cet article est de vous montrer comment un pirate peut malmener votre site internet… Essayez donc de hacker ou de perturber le comportement de votre propre site avec les méthodes de hacking expliquées ci-dessous ; si ces méthodes fonctionnent hélas trop bien, suivez les quelques conseils prodigués ou contactez-nous au plus vite pour réparer votre site 😉
LA METHODE DANS LA THEORIE
Lorsque vous vous trouvez sur un site internet (quel qu’il soit), il y a un échange perpétuel entre votre ordinateur et le serveur en ligne. Votre ordinateur « côté client » par l’intermédiaire de votre navigateur Web (IE, Chrome, Safari…) contacte le site internet « côté serveur » qui lui retournera le résultat sous forme de données, le plus souvent, une page HTML.
Lorsque vous cliquez sur un lien, l’événement déclenché est relativement rudimentaire car il ne demande qu’à ouvrir une page.
Lorsque vous remplissez un formulaire de saisie dans un site internet, l’événement reste le même mais les données envoyées au serveur sont plus volumineuses.
L’une des erreurs les plus courantes du développeur inexpérimenté qui ne se soucie pas de la sécurité consiste à avoir une confiance aveugle en les données reçues par l’utilisateur sur son serveur. Il n’y a qu’une seule chose à retenir de cet article : il ne faut jamais avoir confiance dans les données envoyées par l’utilisateur. Même si vous faites des contrôles JavaScript dans les formulaires de saisie « côté client », l’utilisateur peut outrepasser ce contrôle : soit en désactivant JavaScript, soit en modifiant les données après ce contrôle avec des outils spéciaux.
La solution à ce problème se résume encore une fois une phrase simple : Il faut toujours contrôler les données envoyées par l’utilisateur du « côté serveur », jamais du « côté client ». Le contrôle des données « côté client » par le navigateur web ne pourra que préparer le travail mais jamais le remplacer !
AU MENU DU JOUR, NOUS VOUS PROPOSONS
- d’intercepter les données envoyées dans un formulaire basique,
- de modifier à la volée un paiement carte bleue (avec PayPal) pour effectuer une commande à 1 euro !!!
De quoi avez-vous besoin pour suivre notre article ?
- Il vous faut la dernière version de Mozilla Firefox,
- Il vous faut également installer dans votre Firefox, le module Tamper Data
COMMENT INTERCEPTER LES DONNEES D’UN FORMULAIRE ?
Nous allons nous rendre sur l’un des sites le plus consulté de la planète terre, www.facebook.com avec votre navigateur Firefox.
Le curseur de saisie clignote fébrilement dans la zone d’authentification, attendant que vos coordonnées d’identification tombent. Votre cerveau envoie soudain un influx nerveux jusqu’à vos doigts qui frappent sans relâche ce pauvre clavier qui ne vous a pourtant rien fait… Bref, vous venez de saisir l’adresse électronique et votre mot de passe, et vous vous apprêtez, avec votre mulot, à cliquer sur le bouton « Connexion »… c’est à ce moment précis, (là, oui ! Maintenant !) avant d’envoyer le formulaire qu’il faut activer votre module Tamper Data.
Allez dans le menu Outils/Altérer données… Et la fenêtre du Mal vient de s’ouvrir ! Ok, ok, je vais arrêter le ton dramatique… La fenêtre s’ouvre et vous allez cliquez sur le bouton « Démarrer altération ». La chose ainsi faite, vous pouvez à présent cliquer sur le bouton « Connexion » du site Facebook. La fenêtre de Tamper Data resurgit alors et vous demande « Altérer la requête ? », de là, il suffit de cliquer sur le bouton « Altérer »
La fenêtre ci-dessus apparaît, et vous avez accès à tout ce qui se cache derrière le formulaire. Dans la partie de gauche le navigateur en lui-même et dans la partie de droite les données du formulaire. Chaque zone est parfaitement éditable et donc modifiable… Aucun code côté client que vous aurez pu créer ne pourra stopper cela ! Une fois les modifications effectuées, il suffit de valider la fenêtre en cliquant sur le bouton « OK ».
D’où notre règle d’or: n’ayez jamais confiance en les données envoyées par l’utilisateur « côté client ».
MODIFIER UNE PAIEMENT EN LIGNE ?
Nous allons à présent nous rendre sur une boutique en ligne quelconque qui utilise un système de paiement PayPal. Vous remplissez votre panier, vous validez les diverses étapes de votre commande en vous arrêtant juste avant le paiement.
A présent, on vous demande de cliquer sur le logo PayPal pour payer votre commande. « Normal », me direz-vous, mais c’est à ce moment précis qu’il vous faut activer notre Tamper Data de la même manière que lors de notre identification Facebook…
Revoici la fenêtre que vous commencez à maîtriser. J’ai surligné une zone en rouge. Je pense que, dans votre esprit se dessine l’horreur de cette méthode. Et oui, vous pouvez en effet changer le montant de votre commande et mettre à la valeur de votre choix ! 1.0 pour 1 euro.
En poursuivant le paiement, PayPal vous demandera de régler votre commande d’un euro symbolique en vous remerciant bien généreusement…
Attention : Le but de cet article n’est pas de vous montrer comment effectuer vos achats sur internet à faible coût, mais surtout de vous montrer l’importance de bien contrôler les données de l’utilisateur !
Comment résoudre le présent problème ? Sachant que vous n’êtes plus sur votre site, mais sur une plateforme bancaire, il n’y pas de solution de votre côté. En revanche, lors du retour bancaire sur votre site, vous pourrez contrôler le montant du panier de vos clients avec celui retourné par PayPal. Si le montant est différent, il y a fort à parier que vous êtes en présence d’une commande erronée ou truquée par un « petit malin » du web…
Encore une fois, votre site internet par rapport au site internet PayPal (ou autre) est un utilisateur tiers comme un autre, et à ce titre vous ne devez pas lui faire confiance. Ce n’est pas parce que le site PayPal vous dit que le paiement est bien effectué et que la commande est valide qu’il faut le croire, les yeux fermés…
C’est très intéressant pour le niveau de sécurité d’un site Internet, merci
il faut quelle version de firefox ?