Un hacker de chez GnuCitizen vient de trouver une énorme faille de sécurité dans le protocole JAR. Quand je parle de protocole, je veux dire que JAR permet d’accèder à des fichiers dans un fichier compressé. (Zip… ou autre, vous verrez après)Pour accèder à ce fichier, il suffit d’appliquer la syntaxe suivante :
jar:[url vers l'archive]![chemin vers le fichier]
La première partie pointe vers l’url ou se trouve le fichier archive et le paramètre « chemin vers le fichier » qui commence le plus souvent par un / .
Par exemple, si dans l’archive, nous avons un repertoire Pictures dans lequel il y a une image a.jpg, on aura quelquechose comme ça
jar:https://domain.com/path/to/jar.jar!/Pictures/a.jpg
Voilà pour l’intro… Vous l’aurez compris, le fichier a.jpg s’ouvrira avec comme chemin celui de l’archive… donc un truc comme ça
https://domain.com/path/to/a.jpg
Alors, quel est le problème ? Le problème c’est que n’importe quelle application web (même les plus grosses) qui autorise l’upload de fichiers JAR/ZIP est potentiellement vulnérable à un Cross Scripting permanent. Tout le monde est vulnérable… Des web mails, aux systèmes d’upload de fichiers en passant par des outils de travail collaboratif… Bref, pas mal de trucs web 2.0. (Google et Microsoft sont par exemple faillibles)
Là ou ça devient marrant, c’est que si vous prenez un format de fichier OpenOffice (odt) ou le format Open Document de Microsoft, on se rends compte qu’eux aussi sont basé sur la norme ZIP. Il suffit donc de créer un document avec Word avec de format ouvert, de le renommer avec l’extension Zip pour pouvoir l’ouvrir et en changer le contenu. C’est à dire qu’un attaquant pourrait inclure simplement une page HTML « démoniaque » à l’intérieur. Ensuite, il lui suffit de redonner la bonne extension au fichier (.doc ou .odt) et de l’envoyer sur le site de sa victime via n’importe quel formulaire.
L’attaquant n’aura alors plus qu’à appeler son fichier directement avec le protocole JAR pour lancer sa page HTML.
Un autre intérêt peut être aussi de passer outre les antivirus en utilisant une extension non reconnue par ces derniers, et il est aussi possible d’encapsuler les jars entre eux, ou d’y placer d’autres type de protocoles data: pour échapper aux radars…
Vous l’aurez compris, c’est une faille très très grâve qui touche tout le monde ! Le seul moyen de se protéger, c’est de véritablement vérifier le contenu de ce qu’upload vos utilisateurs, mais parfois, cela est impossible surtout avec des formats comme les .odt ou .doc. Vous devez donc les renommer, les ouvrir, verifier leur contenu. Tout ceci est évidement temporaire le temps que les sociétés d’antivirus et d’IDS se mettent à la page… Je pense quand même qu’ils ont un peu de boulot !