Add your promotional text...
Pourquoi un pentest devrait être obligatoire avant d’acheter un ERP — étude de cas : CVE-2025-60500
Explication de la vulnérabilité File Upload sur un site web d'une CVE déposée.
10/22/20255 min temps de lecture


Introduction
Dans cet article, j'explique comment j'ai découvert une vulnérabilité et déposé ma première CVE officielle — CVE‑2025‑60500 — affectant Smart School Management version 7.1. Ce produit est un ERP (Enterprise Resource Planning — planification des ressources d'entreprise) vertical, spécialisé dans la gestion des établissements scolaires et développé par QDocs.
Cette découverte illustre un problème fréquent : des solutions vendues « prêtes à l’emploi » sans garanties réelles en matière de sécurité. Cet article vulgarise la faille, présente son impact potentiel et montre pourquoi un pentest (test d’intrusion) est indispensable avant tout déploiement sur son infrastructure.
Qu'est-ce qu'un pentest ?
Un pentest (test d’intrusion) est une sorte de « cyberattaque préventive » réalisée à la demande d’une organisation pour évaluer la robustesse de son système d’information (SI). Le but est d’identifier des failles potentielles — sur un site web, une application, un réseau ou un objet connecté — avant qu’un attaquant malveillant ne les exploite.
Un pentest consiste à simuler des attaques réelles (avec autorisation) pour :
détecter les vulnérabilités ;
évaluer leur impact ;
proposer des mesures correctives.
Même si un ERP est conçu pour être sécurisé, des vulnérabilités peuvent subsister : c’est pourquoi ces évaluations sont indispensables.
Avertissement
Le but de ce texte est pédagogique : expliquer la nature et les conséquences d’une vulnérabilité découverte dans un logiciel. Aucune méthode d’exploitation, script ou preuve de concept exploitable n’est divulguée ici. Toute responsabilité est déclinée en cas d’utilisation malveillante d’informations externes. Les détails techniques exploitables ont été communiqués au fournisseur selon une procédure de divulgation responsable. Cet article vise uniquement à documenter l’impact et le besoin de contrôles de sécurité.
Explication d'une vulnérabilité file upload - CVE-2025-60500
Nous allons voir ici l'importance de sécuriser ses outils de son service d'information. Dans cet exemple partons du principe que nous étudions le cas d'une école , elle souhaite simplifier la gestion des élèves, des professeurs et de tout son personnel. Elle décide donc de payer un ERP pour centraliser tout ses services et stocker ses données sensibles. Seulement, elle ne s'imaginait pas qu'une fois qu'un utilisateur authentifié sur la console de gestion, hébergée par son propre serveur WEB, un utilisateur pouvait passer de ça:
Une interface WEB pour gérer ses utilisateurs et services
A cela :
Un shell web permettant d’exécuter des commandes à distances pour interférer sur le serveur
Si les utilisateurs ne savaient pas que cela été possible, un pirate informatique tentera et trouvera le moyen d'arriver à ce genre de résultat. Mais alors comment est ce possible techniquement d’exécuter du code arbitraire sur le serveur depuis une interface qui interagit juste avec le site web? Pour répondre à cette question nous devons voir deux choses : comprendre ce qu'est un reverse shell et comment fonctionne un serveur web.
Fonctionnement d'un reverse shell et des pages WEB
Nous avons vu ce qu'est un shell, sans entrer dans les détails il s'agit simplement d'un interpréteur de commande pour agir directement sur un système. Mais du coup c'est quoi un reverse shell? En informatique pour des raisons de communication, il est tout à fait possible d'avoir deux machines A et B, ou A utilise justement un shell et utilise une commande pour dire à B "tiens je te donne accès à mon shell". Cela sert dans certains contextes de dépannage/support, notamment lorsque dans un réseau les communications sont bloquées par firewall, on empêche plus généralement les connexions entrantes et moins souvent les sortantes. Par exemple un utilisateur souhaite avoir accès à la machine B. Il peut être bloqué par un firewall s'il filtre le flux SSH entrant. A l'inverse le firewall ne filtre pas les connexions sortantes, il donne donc la possibilité de communiquer grâce à un reverse shell:
Connexion SSH - Flux entrant
Reverse shell - Flux sortant
Maintenant, pour le fonctionnement d'un site WEB, c'est très simple. Tout dépend comment le serveur est configuré le serveur et dans quel langage est codé le site web mais très souvent du PHP est utilisé. Lorsqu'un utilisateur souhaite accéder à un site depuis son poste client, il envoi une requête GET pour demander la page au serveur:
L'avantage du PHP est qu'il s'agit d'un langage de script côté serveur : il sert à coder le site web et ses fonctionnalités mais agit aussi au niveau des instructions serveur. Ce qui veut dire que des fichiers PHP peuvent non seulement servir à construire le site mais peut aussi avoir des fonctionnalités poussées pour agir directement sur le serveur.
Par exemple, admettons qu'un professeur souhaite rendre a disposition un cours en ligne. Il a la possibilité d'ajouter des fichiers à part, comme des pdf, des images, des fichier words sur le site... Pour mettre à dispositions ses fichiers après les avoir chargé sur le site web il clique sur "mettre en ligne". Cela envoit une requête au serveur, avec les paramètres utilisateurs ainsi que les fichiers, le serveur suit son code (en général un fichier qui pourrait s'appeler upload.php) et va suivre des instructions côté serveur pour exécuter l'action de l'utilisateur.
On pourrait alors se poser la question suivante: si par un quelconque moyen, que se passerait il si une personne mal intentionnée parvienne a upload un reverse shell ? Si un attaquant trouve le moyen de mettre en ligne sur le serveur un fichier malicieux, il sera alors logiquement executé par le serveur web lui même. Il faut juste doubler d'ingéniosité pour trouver un moyen pour upload le fichier car généralement ils sont filtrés par la fonction upload.
Dans cet exemple, c'est ce que l'on appelle une faille de File Upload: trouver un moyen de passer outre le filtrage pour uploader un fichier malveillant et soutirer des informations sur le serveur, voire obtenir un reverse shell.
Impact potentiel - Conclusion
Selon le niveau d’accès obtenu, les conséquences peuvent être graves :
exécution de code arbitraire sur le serveur ;
compromission des données personnelles des élèves, du personnel et des parents ;
modification ou suppression de données (intégrité) ;
déplacement latéral vers d’autres systèmes du réseau interne ;
mise en place d’un point d’appui persistant (backdoor) ;
atteinte à la disponibilité (ransomware, déni de service ciblé).
La vulnérabilité CVE‑2025‑60500 illustre pourquoi il ne suffit pas d’acheter une solution « prête à l’emploi » sans effectuer de vérifications. Un pentest, des bonnes pratiques de développement et une configuration serveur prudente sont indispensables pour protéger les données sensibles.









