La faille CRLF

To the non-french speaker, note that you can translate the articles using the Google Trad widget situated at the bottom of all pages.


En programmation on utilise une CRLF (Carriage Return Line Feed) pour indiquer une fin de ligne ainsi qu’un retour à la ligne. En ASCII ces caractères sont encodés par : \r et\n.

Techniquement parlant il n’y a pas grand-chose à dire, on va donc passer directement à un exemple concret.

Si vous êtes un utilisateur lambda et que vous avez perdu votre mot de passe vous permettant de vous identifier sur un site, vous allez vous rendre sur l’onglet « mot de passe oublié ». Ici on va vous demander d’entrer votre mail afin de vous envoyer un nouveau mot de passe provisoire.
Le formulaire ressemblera à ça :

formulaire
Et le code correspondant au formulaire :

code

Une fois que vous aurez cliqué sur le bouton envoyer, un script PHP vous enverra un mail avec votre mot de passe provisoire.
Voici à quoi ressemble le script :

codemail

Par conséquent si j’entre mon adresse mail : aurelien.chalot@gmx.com, je vais recevoir ce mail :

newmdp

Maintenant mettons-nous à la place du pirate informatique. Il sait que vous avez un compte sur ce site, il connait votre adresse mail mais ne connait pas le mot de passe de votre boite mail. Imaginons que l’adresse mail de la victime est : k701462@mvrht.com

Voilà ce que le pirate va faire : il va modifier la balise input et la remplacer par une balise textarea. De cette manière il pourra entrer deux adresses mail.

En live voilà ce que ça donne :

manipulation

Et voici ce que je reçois :

r2

La boite mail de la victime

r1

La boite mail du pirate


Comment s’en protéger :

La manière la plus simple de s’en protéger et d’empêcher les retours à la ligne lors du traitement des adresses mail. Vous pouvez aussi implémenter une double identification.


Voilà cet article sur la faille CRLF est terminé. Comme vous avez pu le voir ce genre de faille est assez intéressante pour le vol de compte. Elle est aussi très facilement protégeable 🙂 !

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s