Eolia Posted September 25, 2019 Share Posted September 25, 2019 (edited) Attention aux possesseurs de ce module (version 1.6.0) les hackers téléchargent directement leurs pfm dpuis l'ajax et infectent votre site. Ce fichier ne contrôle rien concernant le type de fichier envoyé. Exemple de requête: 35.242.236.93 site.fr - [08/Sep/2019:22:36:25 +0200] "POST /modules/jmsslider/ajax_jmsslider.php?action=addLayer&id_slide=attari&data_type=image HTTP/1.1" 200 25 "-" "python-requests/2.22.0" Le hack fonctionne même si le module n'est pas installé, il suffit qu'il soit présent sur votre ftp dans le répertoire /modules Ca fait juste peur en fait de voir de tels codes... $context = Context::getContext(); $slides = array(); if (Tools::getValue('action') == 'addLayer' && Tools::getValue('id_slide')) { $data_type = Tools::getValue('data_type'); if ($data_type == 'text') { ... } elseif ($data_type=='image') { $path = dirname(__FILE__).'/views/img/layers/'; if ($_FILES['data_image']['name']) { $st_name = preg_replace('/[^A-Za-z0-9\._\-]/', '', $_FILES['data_image']['name']); $name = str_replace(' ', '-', $st_name); $img_extend = array('png', 'jpg', 'gif', 'jpeg'); $type = Tools::strtolower(Tools::substr(strrchr($_FILES['data_image']['name'], '.'), 1)); $path = dirname(__FILE__).'/views/img/layers/'; if (!file_exists($path.$name)) { move_uploaded_file($_FILES['data_image']['tmp_name'], $path.$name); } $data_image = $name; } else { $data_image = Tools::getValue('data_s_image'); } ... Edited January 6, 2020 by Eolia (see edit history) 3 2 Link to comment Share on other sites More sharing options...
doekia Posted September 25, 2019 Share Posted September 25, 2019 Depuis 2015, il y en a qui ne veulent pas apprendre Link to comment Share on other sites More sharing options...
Eolia Posted September 25, 2019 Author Share Posted September 25, 2019 Le module date de 2017^^ Link to comment Share on other sites More sharing options...
hydromel2008 Posted September 27, 2019 Share Posted September 27, 2019 Merci pour ces détails, mon site utilise justement jmsslider et a été infecté il y a 2 jours. J'ai eu à défaire la merde que ça l'a foutu. Effectivement, des fichiers php avec des codes encryptés avec des instructions eval ont été détectés dans le module. Auriez-vous une solution simple pour que ceci ne se reproduise plus ? à moins que je me trompe, le module ne semble pas vérifier si la requête post est fait par un utilisateur autorisé. Link to comment Share on other sites More sharing options...
Eolia Posted September 27, 2019 Author Share Posted September 27, 2019 demandez une mise à jour à son auteur. Par contre attention, cette infection permet au hackeur de déposer des fichiers un peu partout sur votre ftp pour pouvoir revenir ensuite. Link to comment Share on other sites More sharing options...
hydromel2008 Posted September 27, 2019 Share Posted September 27, 2019 (edited) Effectivement, je me suis hâté de contacter l'auteur. J'ai reçu la nouvelle version, bien heureusement. C'est ce que j'ai fait, bref... Un petit grep -rnw '.' -e 'base64' --include=*.php et grep -rnw '.' -e 'eval' --include=*.php pour voir les parcelles de codes suspicieuses. Dans un cas comme celui là, il n'y a pas de solution miracle pour trouver l'étendue des dégats. Et voilà, quelques heures d'analyses et beaucoup de café à boire afin de m'assurer que ma boutique est saine. Au moins, je peux me rassurer que les droits sont tenus assez serrées, donc, pas vraiment de fuite possible en dehors du répertoire de prestashop. Merci d'avoir signalé il y a quelques jours, ça m'a mis sur une piste et merci pour le conseil Edited September 27, 2019 by hydromel2008 (see edit history) Link to comment Share on other sites More sharing options...
ngoran Posted November 10, 2019 Share Posted November 10, 2019 Bonjour, Tu pourrais stp partager la nouvelle version reçu de l'auteur? Il ne semble plus actif sur envato et ne répond pas a mes mail 😏 Link to comment Share on other sites More sharing options...
hydromel2008 Posted November 10, 2019 Share Posted November 10, 2019 2 hours ago, ngoran said: Bonjour, Tu pourrais stp partager la nouvelle version reçu de l'auteur? Il ne semble plus actif sur envato et ne répond pas a mes mail 😏 Biensûr, voici ce que j'ai utilisé pour regler mon problème, je suis sur 1.6 mais ils ont fait le correctif pour 1.6 et 1.7. Ils ont ajouté une vérification du token de sécurité sur l'appel ajax. https://www.joommasters.com/index.php/blog/tutorials-and-case-studies/how-to-fix-security-bug-of-slider-security-breach-of-theme.html Je te conseilles de bien lire tes logs, il se pourrait que ton serveur soit compromis tout dépendant du niveau de sécurité de ta configuration. 1 Link to comment Share on other sites More sharing options...
ngoran Posted November 10, 2019 Share Posted November 10, 2019 8 minutes ago, hydromel2008 said: Biensûr, voici ce que j'ai utilisé pour regler mon problème, je suis sur 1.6 mais ils ont fait le correctif pour 1.6 et 1.7. Ils ont ajouté une vérification du token de sécurité sur l'appel ajax. https://www.joommasters.com/index.php/blog/tutorials-and-case-studies/how-to-fix-security-bug-of-slider-security-breach-of-theme.html Je te conseilles de bien lire tes logs, il se pourrait que ton serveur soit compromis tout dépendant du niveau de sécurité de ta configuration. C'est noté, et surtout grand merci à toi! Link to comment Share on other sites More sharing options...
Eolia Posted November 11, 2019 Author Share Posted November 11, 2019 c'est un peu léger comme correctif, un getimageSize() aurait réglé de le problème direct (si ce n'est pas une image la fonction native renvoie false) Link to comment Share on other sites More sharing options...
doekia Posted November 11, 2019 Share Posted November 11, 2019 Il est "génial" ce patch avec une moitié du code qui ne sert à rien ! Citation $path = dirname(__FILE__).'/views/img/layers/'; if ($_FILES['data_image']['name']) { $st_name = preg_replace('/[^A-Za-z0-9\._\-]/', '', $_FILES['data_image']['name']); $name = str_replace(' ', '-', $st_name); $img_extend = array('png', 'jpg', 'gif', 'jpeg'); $type = Tools::strtolower(Tools::substr(strrchr($_FILES['data_image']['name'], '.'), 1)); $path = dirname(__FILE__).'/views/img/layers/'; if (!file_exists($path.$name)) { move_uploaded_file($_FILES['data_image']['tmp_name'], $path.$name); } $data_image = $name; On cherche le type de fichier (par son extension), mais on ne le teste pas Et on stocke ce fichier tel quel. Si on passe la secure_key (qui par installation "in situ") est toujours la même, un hacker envoie un fichier hack.php directement dans le répertoire /views/img/layers/ et c'est la fête du slip. J'hallucine de voir comment après tout ce temps les développeurs sont incapable de prendre les problème de sécurité au sérieux. $path = dirname(__FILE__).'/views/img/layers/'; if ($_FILES['data_image']['name']) { $info = pathinfo($_FILES['data_image']['name']); // Is this a valid extension ? if (!in_array(strtolower($info['extension']),array('png', 'jpg', 'gif', 'jpeg')) { die(__LINE__); } // Is this a valid image ? if (!(@getimagesize($_FILES['data_image']['tmp_name'])) { die(__LINE__); } // Rename the file, keep only the extension $name = uniqid().'.'.$info['extension']; if (!file_exists($path.$name)) { move_uploaded_file($_FILES['data_image']['tmp_name'], $path.$name); } $data_image = $name; } 2 Link to comment Share on other sites More sharing options...
hydromel2008 Posted November 11, 2019 Share Posted November 11, 2019 (edited) Doekia, il y a une omerta concernant la sécurité informatique. Plusieurs compagnies qui gère des données plus critiques que des petites boutiques prestashop ne prennent pas au sérieux. Au Canada, il y a eu une brèche de sécurité avec la coopérative de caisses Desjardins qui a compromis l'identité de 4.3 millions d'utilisateurs (soit 11.4 % de la population du pays). Tout ça parce que la sécurité n'a pas cru bon restreindre les accès a de l'information sensible et ainsi qu'à l'usage de stockage externe. Le mec qui sortait les informations était loin d'être un hacker et il a quand même réussi à sortir les informations de tous les utilisateurs sur l'espace de quelques années Avec la sensibilité des informations ayant fuit. il est possible de faire une demande d'hypothèque, emprunter pour une voiture, ouvrir des cartes de crédit, demander un permis de conduire. Bref, l'identité 11.4% de la population de mon beau pays est compromise parce que des experts en sécurité ont jugé que le problème n'était pas assez complexe pour y porter attention et ce n'est que lorsqu'une enquête suite à des plaintes d'irrégularités auprès d'un corps policier que c'est sorti publiquement. Bref, j'arrête le déraillage du thread. Pour ma part, j'avais pas remarqué ces tests absent, j'applique ça à mon codebase, je vais tenter de relayer ton fix à l'auteur, s'il veut entendre raison. Edited November 11, 2019 by hydromel2008 (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted November 11, 2019 Share Posted November 11, 2019 Là tu parle de sécurité interne - sujet légèrement différent. Ici nous avons depuis au moins 2015 identifié des attaques externes ciblées sur Prestashop (il était un peu ignoré avant). Mais comme l'écosystème a traîner à réagir. C'est devenu une cible prisée. Et si nous ne faisons pas maintenant très attention. Nous resterons les victimes de ces attaques. 2 Link to comment Share on other sites More sharing options...
BeComWeb Posted January 6, 2020 Share Posted January 6, 2020 @Eolia Juste une petite remarque. Il y a une coquille dans le titre du topic, il manque un "s" dans le nom du module : jmslider --> jmsslider Link to comment Share on other sites More sharing options...
Eolia Posted January 6, 2020 Author Share Posted January 6, 2020 Correctionné 1 Link to comment Share on other sites More sharing options...
piep14 Posted January 24, 2020 Share Posted January 24, 2020 Bonjour, J'ai également été victime d'un piratage sur mon site et je cherche à savoir quelles sont les fichiers à mettre à jour pour fix ces bugs de sécurité ? Merci de votre aide. Link to comment Share on other sites More sharing options...
hydromel2008 Posted January 24, 2020 Share Posted January 24, 2020 15 hours ago, piep14 said: Bonjour, J'ai également été victime d'un piratage sur mon site et je cherche à savoir quelles sont les fichiers à mettre à jour pour fix ces bugs de sécurité ? Merci de votre aide. Le site qui a été piraté a bien le JMS Slider installé ? Link to comment Share on other sites More sharing options...
piep14 Posted January 25, 2020 Share Posted January 25, 2020 Oui il l'a @hydromel2008 Link to comment Share on other sites More sharing options...
joomleader Posted January 30, 2020 Share Posted January 30, 2020 Bonjour à tous, Quelques détails supplémentaires : https://www.joommasters.com/index.php/blog/tutorials-and-case-studies/how-to-fix-security-bug-of-slider-security-breach-of-theme.html Link to comment Share on other sites More sharing options...
BebeGrO_oT Posted July 9, 2020 Share Posted July 9, 2020 (edited) Je reviens sur ce post, J'ai été également victime hier soir de ce hack, en ayant contacté le développeur, il a fait une mise à jour de son thème en réglant les sécurité du JMSLider. Voilà espérons que cela vous aidera Bonnej ournée Edited July 9, 2020 by WebAlsaceInfo (see edit history) Link to comment Share on other sites More sharing options...
Butterfly70 Posted September 29, 2021 Share Posted September 29, 2021 Bonjour, Merci beaucoup WebAlsaceInfo! Link to comment Share on other sites More sharing options...
lyam Posted October 5, 2021 Share Posted October 5, 2021 Bonjour, Merci beaucoup pour le partage. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now