Présentation

 
Bonjour,

freelance, administrateur de base de données et expert sur la plateforme SQL Server, j'interviens auprès de PME ou de Grands Comptes pour auditer leurs serveurs et en améliorer performances, robustesse et sécurité.

Vous pouvez faire appel à mes services pour des missions ponctuelles ou des projets plus longs.

Pascal MESSAGER
mail messager(point)pascal(point).pro(arobase)wanadoo(point)fr
06-63-94-56-97


Navigation

Page d'accueil

Présentation et contact : CV  

Une méthode remarquable : Audit SQL

Liens suggérés :

Un Séminaire de haut niveau http://www.sqlpass.org

Intro

Les bases de données sont au coeur du système d'information de toutes les entreprises. Les applications dépendent directement de leur bon fonctionnement.

Dans ce blog, j'apporte quelques réflexions issues d'une longue expérience. Avec un peu d'humour, blog oblige, mais sans jamais oublier le principal : le système d'information est au service de la productivité de l'entreprise. Pas le contraire.

Pascal MESSAGER

Lundi 27 juin 2005
C'est un classique. Dans les dix premières leçons de l'apprenti-pirate pré-adolescent. Pour pirater un site web, il suffit de taper ces deux mots "injection sql" dans Google, et il nous tombe 500 000 hits. 500 000 modes d'emploi de hack. Et ça marche !

Parce que c'est simple. Simple à pleurer. Il suffit de connaître un caractère présent sur le clavier. Un tout petit, à peine quelques pixels à l'écran. Mais il ouvre la porte de quantité de sites web aussi peu protégés qu'un vieux moulin abandonné en Haute-Provence, dans lequel entrent et sortent des nuées de cigales stridulentes.

Une vulgaire apostrophe. Située sous le chiffre 4 d'un clavier AZERTY. Voilà la clé magique qui menace la sécurité de votre serveur de bases de données.

Vous ne me croyez pas ? Vous avez tort. C'est simple à pleurer vous dis-je.

Travaux Pratiques

Oncques estoit votre beau site web, chargé de tous vos espoirs de richesse e-commerciale. Evidemment, vous prévoyâtes à l'endroit de vos estimés clients zé partenaires, un accès privilégié. Privilèges abolis un Quatre-Août pour les naïfs, soit dit en passant.

Pour accéder à ce club de nantis, les susdits se doivent de décliner leur identité. Le programmeur que vous chargeâtes de cette vile tâche étant fainéant par nature, il copicolla le code html d'un site concurrent et proposa deux minuscules zones de saisie. L'une baptisée "Login" et l'autre "Password", à moins qu'il ne s'astreignit à la francisation.

L'internaute honnête et cynophile saisira donc son sésame. Par exemple
Login = dupond
Password = medor
Et la chevillette cherra.

Mais supposons notre internaute, privilégié disions-nous donc non concerné par le Quatre-Août, être de cette noble engeance aristocratique et disposer d'une particule en son nom (et vaguement irlandais de plus).

Login = O'Neil d'Estrées d'Harcourt
Password = n'importe nawak

Hélas, ô rage, ô désespoir, s'abat alors le couperet fatal du bug et, au lieu d'afficher la page web due à son rang, voici qu'apparait une absconse insulte :

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Ligne 1 : syntaxe incorrecte vers 'Neil d'.
/identification.asp, line 10

Perdu ! Votre site a cédé sous les coups de butoir de l'apostrophe scélérate et révélé sa vulnérabilité. Le pirate y est désormais comme chez lui.

Que c'est-il passé ?
L'apostrophe est chez SQL, le langage d'accès à la base de données, le délimiteur de chaine de caractères. Le programmeur a construit la requête autour du login, sans envisager le cas de l'apostrophe présente. Résultat, tout ce qui est après cette apostrophe est interprété par SQL comme du code exécutable. Dans l'exemple ci-dessus "Neil d" provoque une erreur de syntaxe d'où le message peu amène.

Mais si au lieu d'une instruction erronée après l'apostrophe, l'internaute saisit une instruction SQL valide ?

Login = ' or 1=1 --
Password = onsenfout

Je vous passe les détails techniques, mais la saisie ci-dessus suffit à tromper le contrôle de sécurité et donner accès à la page web protégée. Mais on peut faire bien pire et pénétrer le système entier.

Allons ! Est-ce vraiment une menace sérieuse ?
Oui, hélas. Pour avoir fait des petits essais, un site web sur dix est ainsi vulnérable. Y-compris des sites très prestigieux dans le secteur de la haute finance !

Faites le test sur votre site web. Insérez une petite apostrophe, une toute petite. Si ça plante, vous serez bientôt visité par un horrible bot aux intentions mafieuses venu du tréfond du Balozhikstan...


par Pascal MESSAGER publié dans : dba-sqlserver
ajouter un commentaire commentaires (0)    créer un trackback recommander
Retour à la page d'accueil

Commentaires

Aucun commentaire pour cet article

Trackbacks

Aucun trackback pour cet article
hebergement gratuit creation blog page web sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur avec TF1 Network - Signaler un abus