Aujourd’hui a été annoncé en grandes pompes (…) le nouveau site du groupe PlayWeb, dirigé de main de maître par Romain Casolari (on sent que c’est le même, vu les sites), alias Chauffeur de Buzz, j’ai nommé LoL Guru. Le nom fait déjà frémir, cependant la description vaut le détour :
Bienvenue sur mon site, je suis LoL Guru ®, né le 21 décembre 1891, je suis considéré comme le Gourou du Divertissement !!! Je blogue, mets à jour ce site depuis le début du XXe siècle pour partager avec vous les news, photos, vidéos, sites Internet, jeux et coloriages en ligne, prochaines et dernières sorties de DVD, jeux vidéo, logiciels, applications, …
Amusez-vous bien LOL
Moi quand on me propose de m’amuser, je dis jamais non.
Mais… J’ai des loisirs un peu différents.
En tant que développeur, le backoffice d’un site si énorme m’intriguait. Je l’imaginais déjà rempli d’algorithmes, une interface à la Minority Report pour taper plus vite que son ombre, de l’autocompletion en AJAX en veux-tu en voilà…
Ouais bon, on repassera. Je vous reprends encore quelques minutes de votre temps, mes petits pandas, pour vous expliquer comment j’en suis arrivé là.
Il ne faut pas très longtemps, même pour un con comme moi, pour trouver l’adresse de l’administration du site. En effet, un aller simple sur http://fr.lolguru.com/admin/connexion.asp nous laissait apparaître un joli formulaire d’identification.
Ayant peu d’espoir mais ne pouvant repartir sans avoir testé, je me lance et écris une apostrophe comme identifiant, ainsi qu’en mot de passe. Je m’attendais à me faire rejeter bien comme il faut, avec une alerte automatique au GIGN. Quand je vois simplement l’erreur suivante :
[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la chaîne dans l’expression "login like ’’’ and password like ’’’".
Je n’ai donc pas pu accéder à l’administration du site. Cependant deux points m’intriguent :
- L’utilisation de la syntaxe SQL LIKE pour l’identification autorise le wildcard %. Très dangereux pour un système d’identification.
- Mes apostrophes n’ont en plus pas été échappées par un antislash, ce qui a provoqué l’erreur SQL. Très très dangereux…
L’idée de mettre le wildcard % comme identifiant ainsi que mot de passe rendrait donc la requête SQL suivante : login like ‘%’ and password like ‘%’, ce qui sélectionnerait donc n’importe quel identifiant stocké dans la base. Et effectivement, j’ai été identifié comme administrateur (voir capture d’écran ci-dessus).
Ne cherchez plus à aller sur cette page, elle a été supprimée / renommée depuis. Encore mes talents de prestidigitateur.
Pour résumer, voici 4 erreurs à ne pas reproduire sur votre site :
- Ne pas utiliser la syntaxe SQL LIKE en dehors de cas très particuliers (comme la recherche dans une table).
- Ne pas afficher les erreurs SQL lorsque son site est en production (ou au moins, pas les requêtes complètes…).
- Ne pas oublier d’échapper les données injectées dans une requêtes.
- Eviter d’avoir un répertoire administration avec un nom évident si on n’est pas sûr de sa sécurité.
Si vous ne savez pas protéger correctement votre administration et que vous êtes sur Apache, vous pouvez tout aussi bien utiliser la méthode de la protection par .htaccess/.htpasswd.
Au-delà de cette faille, j’ai été surpris par l’austérité de ce backoffice. Rempli de cases austères tel un formulaire de l’administration pénitencière, avec des couleurs hasardeuses et des fautes d’orthographe, ça ne donne pas vraiment envie de travailler et produire du contenu.
Et vous, est-ce que l’administration de votre blog/site est agréable ? Est-ce que ça a de l’importance pour vous ?















