BrowserWar-Dev

La guerre des navigateurs

Cross-Site Scripting


<< Injections SQL Inclusions arbitraires >>


   Le Cross-Site Scripting est une exécution arbitraire de code côté client, c'est-à-dire qu'un attaquant peut, à partir du site, faire exécuter du code côté client type javascript à un visiteur ciblé (social engineering, phishing) ou à l'ensemble des visiteurs (code dans la base de données).

Le danger de cette faille s'évapore peu à peu, mais elle est tellement présente qu'il faut y faire très attention. Dans notre version 1, il y avait deux vulnérabilités de type 2 (vulnérabilité persistente, ou XSS du second ordre).
La première était dans l'affichage de la liste des membres. Si un membre décidait de prendre un pseudo de type <script src=http://xssbase/x.js>, toute personne visitant la liste des membres aurait exécuté côté client le script distant xssbase/x.js, ce qui permet de rediriger les utilisateurs vers d'autres sites, d'inclure du contenu différent, de faire planter systématiquement les navigateurs ou de voler les cookies d'identification.
Une faille du même type existait dans les logs SQL. En effet, en causant une erreur SQL contenant du code et en utilisant la faille de type local include, on pouvait exécuter du code côté client ou côté serveur.

Ces failles ont été corrigées par l'utilisation de htmlentities() (rend inoffensif tout code type html) et de strip_tags() (supprime toute balise trouvée d'une chaîne de caractères). De même, on a jugé qu'il n'était pas utile de permettre un login aussi long que 50 caractères et on a réduit la longueur du champ à 20 caractères.


<< Injections SQL Inclusions arbitraires >>


Hacking et sécurité informatique - BrowserWar - Releases