Uploadify est un plugin jQuery utilisé par de nombreux thèmes et plugins Wordpress qui peut rendre votre système vulnérable en utilisant ce plugin pour envoyer des fichiers sans votre approbation et ainsi exécuter du code arbitraire sur votre serveur. Un module Metasploit, pour un des plugins appelé FoxyPress qui utilise Uploadify, existe déjà.
Pour ceux qui ne connaissent pas Uploadify, c'est un plugin jQuery pour faire de l'envoi d'un ou plusieurs fichiers sur votre serveur. FoxyPress est un plugin eCommerce qui permet d'utiliser la plateforme Wordpress pour la vente et le marketing. Les versions 0.4.2.1 et inférieures sont vulnérables au module Metasploit. Les utilisateurs doivent mettre à jour FoxyPress vers la version 0.4.2.3.
Le problème avec Uploadify n'est pas limité à FoxyPress : IT Pixie a dressé une liste des plugins et des thèmes qui sont vulnérables. Le chercheur en sécurité Darren Martyn a noté sur son blog que de nombreux exploits en cours de publication sur Packetstorm et Exploit-DB étaient liés à des plugins Wordpress qui utilisaient Uploadify.
Les webmasters devraient vérifier leurs serveurs pour voir s'ils utilisent une version vulnérable d'Uploadify et mettre à jour les plugins l'utilisant. Le module PHP se trouve généralement dans uploadify/uploadify.php ou uploader/uploadify.php ou uploadify/upload.php. A savoir que Uploadify 3.0 et toutes les versions antérieures sont vulnérables.
Après quelques mois d'absence, je reviens pour vous faire part de la migration du site vers sa nouvelle version d'ici quelques jours.
La tâche a été plutôt ardue et quelques fonctionnalités qui étaient présentes sur le site actuel seront perdues. Notamment les applications comme CrazApps, le moteur USEO, XML Sitemap Generator et SubRip Recheck ainsi que les scripts PHP. Mais ne vous inquiétez pas, celles-ci reviendront dorées d'optimisation
Venons-en maintenant aux modifications qui ont été apportées au cours de ces 3 mois de développement.
Comme vous le savez, mon site a été à l'origine créé en 2007 et n'était alors pas du tout un système de blogging comme aujourd'hui mais plutôt un site dédié à la création de mon premier una Windows XP Crazy. Après je me suis lancé dans le blogging avec comme plateforme Wordpress. Mais modifier son code chaque fois que j'en avais besoin m'a un peu saoulé et je me suis pris en main pour recréer un système de blogging de A à Z en PHP/MySQL.
Vous allez me dire : "Mais il est barge ça a dû lui prendre une plombe!" Bin oui justement mais il faut dire qu'au début je ne me suis pas lancé tout de suite, j'ai rassemblé mes idées et j'ai calculé le temps approximatif de travail dont j'aurai besoin. Et il faut dire que je ne pensais pas que ce projet aller me prendre autant de temps! J'ai choisi une date de départ qui n'est pas due au hasard pour me lancer dans la phase de conception du site : 01/10/10. Je voulais quelque chose qui sonne binaire disons
Alors je ne vais pas vous faire part des différents problèmes que j'ai pu rencontrer au cours du développement car je ne m'en souviens absolument plus... Une fois le site en place, vous pourrez faire un tour du côté des mises à jour pour avoir plus d'information sur la phase de développement.
Mais ayant encore les étapes de développement à l'esprit je peux vous donner très rapidement les les classes et différentes fonctions que j'ai pu développer.
crazy.cache : Une classe de gestion de cache utile pour les redirections où l'on veut faire par exemple apparaître une boîte de dialogue qui a été générée sur la page précédent le rafraîchissement.
crazy.captcha : Classe permettant de créer une image de type captcha afin d'éviter le spam.
crazy.checkpass : Une fonction javascript permettant de donner la fiabilité d'un mot de passe.
crazy.feed : Une classe de création d'un flux de type RDF, RSS 2.0 ou bien ATOM.
crazy.lang : Cette classe a pour but de pouvoir gérer plusieurs langues sur son site web.
crazy.minify : Cette classe groupe les fichiers javascript et css en un fichier virtuel respectif. Elle gère aussi la gestion du cache du code ainsi que l'obfuscation et le minifying de celui-ci.
crazy.sitemap : Cette classe construit un sitemap à partir d'une base de donnée MySQL et permet de pinger les moteurs de recherche Google, Bing, Yahoo et Ask lorsqu'une mise à jour sur le site est faite.
crazy.cookie : Classe de gestion des sessions via cookie.
crazy.errorhandler : Classe qui capture toutes les erreurs générées et les insère en base de donnée (type PHP, SQL, Javascript et Ajax).
crazy.mysql : Classe de gestion de requêtes faites en base de donnée avec calcul du nombre de requêtes générées ainsi que du temps sollicité pour celles-ci.
crazy.session : Cette classe gère les sessions via la base de donnée.
crazy.ovhlogs : Une classe permettant de rapatrier l'intégralité des logs Apache d'OVH sur son serveur (https://logs.ovh.net).
Le site sera découpé en 3 parties, la première le site principal où seront réunis l'actualité autour des autres sites ainsi que le système de blogging. Une autre autour du développement web et une dernière pour la musique.
Comme la plupart du temps, on aime bien avoir une "visu" de ce que ça donnera, alors voici une vidéo :
Forme un peu plus évoluée de l'article que j'avais fait hier sur Uploadify + Jcrop pour redimensionner une image, ici j'utilise Facebox pour faire apparaître l'image uploadée afin de pouvoir travailler dessus. Pour cela n'importe quelle image d'une taille supérieur à 150x190 (pour exemple) est traitée en cropping. Même si cette image dépasse les résolutions de votre écran, une méthode la passe à une échelle inférieure (700px x 500px max). Dans la vidéo qui suit vous verrez que même avec une image dépassant ma résolution d'écran il n'y a pas de soucis Une fonction Xhr a été utilisée égalment pour valider le cropping de l'image sans rafraîchissement entière de la page.
Je ferai bientôt un plugin jQuery à part entière pour cette méthode de cropping!
La section inputUpload comme je l'ai appelée sur mon script englobe un morceau de cette image avec 2 boutons d'action : suppression et zoom sur l'image.
Uploadify est un plugin jQuery vraiment sympa pour l'envoi de fichiers multiples. Ce plugin est utilisé dans de nombreux CMS, notamment Gallery de Menalto et de nombreux sites webs. Je l'utilise dans la majorité des applications et sites web que je développe.
Récemment j'ai eu besoin d'un système ayant besoin de redimensionner une image en live. J'ai pour cela utilisé Jcrop qui en plus d'être un excellent script, est basé sur jQuery
Maintenant pour allier Uploadify à Jcrop j'ai dû faire travailler mes meninges mais le résultat est plutôt satisfaisant :
Si vous souhaitez des infos pour la mise en place d'un script, n'hésitez pas les commentaires sont là