Injection SQL dans PrestaShop : cas, conséquences et remède

Injection SQL c'est quoi ?

L’injection de langage de requête structuré (SQL*) est une technique d’injection de code utilisée pour modifier ou récupérer des données à partir de bases de données SQL. En insérant des instructions SQL spécialisées dans un champ de saisie, un attaquant est capable d’exécuter des commandes qui permettent la récupération de données de la base de données, la destruction de données sensibles ou d’autres comportements de manipulation.

Avec l’exécution correcte de la commande SQL, l’utilisateur non autorisé peut usurper l’identité d’un utilisateur plus privilégié, devenir lui-même ou d’autres administrateurs de base de données, altérer les données existantes, modifier les transactions et les soldes, et récupérer ou bien détruire toutes les données du serveur.

Sqli dans prestashop
Les cas de SQLi dans PrestaShop et d'autres applications Web sont monnaie courante

injection sql c'est grave !!!

Les cas de SQL i dans PrestaShop et d’autres applications Web sont monnaie courante dans l’industrie du e-commerce. Ils se produisent en raison d’entrées non nettoyées. Lorsque la base de données exécute la requête de l’entrée, l’exécution entraîne la divulgation de données sensibles. Les pirates peuvent alors, aller de l’avant et faire tout ce qu’ils souhaitent avec les données.

Aujourd’hui, on parle de prévenir les attaques par injection SQL sur les boutiques PrestaShop. Soyez avec moi pendant que je touche la base avec vous sur le sujet.

Je ne pourrais pas être tenu comme responsable si vous utilisé le contenu ou faite un action similaire, le piratage est puni par la loi et vous risquez la prison.

explication par l'exemple

1- En 2014, les chercheurs en sécurité ont signalé SQLi dans PrestaShop 1.6.0 et quelques autres versions. Ils ont localisé le problème dans le paramètre id_manufacturer.

				
					http://nomdedomaine.quelquechose/ajax/getSimilarManufacturer.php?
id_manufacturer=3[SQL-injection]
				
			

L’entrée non filtrée qui suit le id_manufacturer dans la ligne de code ci-dessus permet aux pirates de visualiser la base de données. Par conséquent, la sécurité de PrestaShop est compromise. Ils peuvent utiliser des outils comme Sqlninja et Sqlmap pour exploiter automatiquement la base de données.

Les modules bien souvent mise encause.

Avec PrestaShop  V1.5.5.0 à 1.7.2.5. on trouve ceci CVE-2018-8824.

Le problème vient du module appelé:  Responsive Mega Menu (Horizontal + Vertical + Dropdown) Pro.

				
					GET: http://site/modules/bamegamenu/ajax_phpcode.php?code=p(Db::getInstance()->ExecuteS("show tables"));

				
			

Le code ci-dessus était utilisé  avec l’utilisation du moteur ajax pour récupérer les données du paramètre vulnérable. Il affiche les tables qui étaient dans la base de données. L’attaquant pourrait très bien  remplacer l’instruction « show tables » par une autre instruction pour créer un super utilisateur ou même effectuer diverses opérations sur la base de données. Ils pourraient exécuter des requêtes pour afficher des tables sensibles ou récupérer des informations de connexion ou d’autres opérations. En un mot, cette requête malveillante a ouvert le tableau de bord PrestaShop au pirate. 

injection sql des conséquences qui font très mal.

L’industrie du e-commerce regorge de victimes qui ont souffert de l’injection SQL. Une fois que les attaquants ont accès à votre base de données, ils peuvent faire tout ce qu’ils veulent avec vos données. 

Cela passe par :

  • Ignorer l’authentification de connexion – Votre site Web n’exigera pas que le pirate informatique saisisse ses informations d’authentification avant d’y accéder.
  • Vol – Ils peuvent voler des informations client sensibles telles que des informations de carte de crédit, des informations de connexion et d’autres données personnelles.
  • Phishing – Ils peuvent compromettre l’intégrité de votre site Web en modifiant ou en insérant du contenu malveillant dans la base de données.
  • Ils peuvent également supprimer ou lire le code source et les données sensibles de votre base de données.
  • Redirections – Les pirates peuvent insérer des liens ou des pages de redirection sur votre site Web. Par conséquent, le trafic entrant peut être redirigé de votre site Web vers le site Web des attaquants, où ils peuvent être dupés.
  • Spamming – Les attaquants peuvent également utiliser votre site Web pour monétiser leurs produits ou services frauduleux. Si votre application interagit avec vos clients en tête-à-tête, les clients perdront confiance en vous à cause des pourriels.
  • Botnets – Les mauvais joueurs peuvent également effectuer des attaques DDoS sur d’autres sites Web, en utilisant les ressources de votre boutique. Par conséquent, votre entreprise subit des ralentissement grave et des pertes de revenus.
  • Ransomware – SQLi dans votre site PrestaShop peut conduire à son enlèvement par des pirates. Ils peuvent chiffrer les fichiers et ne les déchiffreront que si vous remplissez certaines conditions.

Bloquer l'injection sql dans prestashop

Après avoir vu comment les injections SQL peuvent conduire à une myriade d’attaques contre prestashop, il est temps de sécuriser votre site Web. Voici quelques-unes des principales méthodes par lesquelles votre site Web peut rester à l’abri de cette violation de sécurité

Utilisez un pare-feu logiciel sur votre serveur Web
Un pare-feu empêche tout accès non autorisé à votre site. Vous pouvez l’implémenter sous une forme logicielle ou matérielle ou comme une combinaison des deux. Nous suggérons un pare-feu de point de terminaison comme le pare-feu malwarebytes. De cette façon, vous n’avez pas besoin de détourner votre trafic vers un autre serveur, le pare-feu bloque également des centaines d’autres attaques telles que XSS, CSRF, Bad bots, Spam, OWASP top 10, etc. en temps réel.

Surveiller les journaux de requêtes SQL
Il est essentiel d’activer la journalisation des requêtes SQL sur votre serveur. Ne vous arrêtez pas là. Surveillez toujours les requêtes exécutées par votre base de données. En cas de piratage, identifiez la requête affectée à partir des journaux et ajoutez la validation des données dans le fichier PHP correspondant.

Mettez à jour votre version PrestaShop à chaque changement de version de php. Régulièrement
Les versions obsolètes manquent généralement d’un support technique robuste, ce qui rend difficile l’obtention de corrections de bogues et de fonctionnalités de sécurité pour elles. Les versions obsolètes ne bénéficient pas non plus des mises à jour de sécurité.

Utilisez des modules complémentaires de développeurs de confiance uniquement
Certains développeurs vendent leurs extensions à d’autres sociétés. Ces entreprises peuvent finir par mettre à jour les plugins avec des fonctionnalités malveillantes. Ils peuvent ensuite pousser les éléments vers les utilisateurs finaux.

Par conséquent, assurez-vous toujours que le plugin a gagné la confiance de l’industrie.

Pour webmaster67  j’ai créé une liste de développeur européen de premier rang.

(j’en connais certain personnellement).

La team ever et webbax ainsi que la socièté espagnole Innovación y Desarrollo ont tout mon soutien en ce qui concerne prestashop.