Alerte de sécurité

vincent35vincent35 Member
mai 2011 modifié dans Bogues
Bonjour,

Aujourd'hui sur mon blog IT Wars , Thüzhen m'a laissé le message suivant : Je suis désolé de déranger, mais une faille récente a été dévoilée. Je préfère la tester et si elle fonctionne, vous laisser la corriger. bis

Lorsque je clique sur le lien du commentaire, une belle fenêtre javascript apparaît alors, puis redirige vers la page du commentaire !!! Le hack est très simple, il a placé dans l'adresse du site un script javascript. Voilà le contenu du commentaire :


<?xml version='1.0' encoding='UTF-8'?>
<comment>
<author><![CDATA[Thüzhen]]></author>
<type>normal</type>
<ip>x.y.z.w</ip>
<mail><![CDATA[xxxxx@yyy.com]]></mail>
<site><![CDATA[http://www.google.fr"></a><script>alert(1);</script>]]></site>
<content><![CDATA[Je suis désolé de déranger, mais une faille récente a été dévoilée. Je préfère la tester et si elle fonctionne, vous laisser la corriger. bis]]></content>
</comment>

Cette faille ouvre de nombreuses possibilités !!! Je vais regarder de mon côté pour proposer un correctif...

Cordialement.

Réponses

  • vincent35vincent35 Member
    juin 2011 modifié
    Bon j'ai réalisé un petit correctif rapide (du quick and dirty !!!)
    Dans le fichier class.plx.motor.php à la ligne 710 ajouter la ligne en rouge :

    # On verifie le site
    $site = (plxUtils::checkSite(trim($content)))?trim($content):'';
    $site = strip_tags($site);
    # On recupere l'adresse IP du posteur
    $ip = plxUtils::getIp();

    D'une manière générale, je ne comprends pas que notre belle équipe Pluxml, ne strip pas tous les champs de saisie !!!???

    Cordialement
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour Vincent

    Je doute que l'utilisation du strip_tags soit la solution, car l'injection de javascript doit "normalement" être impossible grâce à la fonction plxUtils::checkSite qui vérifie si ce qui est saisi dans le champ site est bien une url. L'attaque est peut etre plus subtile...

    Je viens de tester avec: http://www.google.fr"></a><script>alert(1);</script>
    Il n'y pas de faille XSS, le filtre est bien appliqué.

    Quelle version de PluXml utilises-tu ?

    En tout cas merci pour le retour. On va quand meme vérifier tout ça

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • amowebamoweb Member
    Oui en effet avec une 5.0 ça a l'air encore possible... en tout cas dans la beta c'est corrigé.
    Dans class.plx.utils.php
    Changes
    preg_match('/^http(s)?:\/\/[-.\w]{1,64}\.[-.\w]{2,6}/i',$site)
    
    en
    preg_match('#^(ftp|http(s)?)://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$#i', $site)
    
  • J'utilise la version suivante :

    - Powered by Pluxml 5.0.2
  • VictorVictor Member
    On s'inquiète?
  • amowebamoweb Member
    Tu m'a l'air soucieux Victor...

    Essaies d'applique le patch que j'ai donné précédemment, ça devrait corriger le problèmes. (D'ailleurs, quelqu'un à retester depuis si ça corrigeait bien ? En tout cas pour la prochaine version c'est ok).
  • Bonjour,

    J'ai fait le test c'est ok avec ce correctif :)

    Thx
  • StéphaneStéphane Member, Former PluXml Project Manager
    merci pour la confirmation Vincent

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

Connectez-vous ou Inscrivez-vous pour répondre.