Outils d'utilisateurs

Outils du Site


failles_web:injection_de_code

Ceci est une ancienne révision du document !


L'injection de code est une attaque par injection (appelée aussi injection de code arbitraire). Elle survient quand le site présente la vulnérabilité de ne pas vérifier les entrées et exécute directement ce qu'il reçoit.

Les pirates exploitent cette vulnérabilité et passent des fonctions PHP ou des bouts de code soigneusement forgés (parfois même des commandes systèmes). Quand ces codes sont exécutés ils peuvent présenter un danger éminent sur la confidentilité et l'intégrité (voir la disponibilité) du site Web. En effet, une telle pratique peut par exemple:

  • Lister des informations confidentielles comme le codes sources coté serveur
  • Supprimer et modifier des données présentes sur le site
  • Détruire ou compromettre la base de données

Exploitation Code de la page :

<?php
   $code=$_GET["code"];
   eval($code.";");
?> 

Si le développeur n'a pas filtré ses entrées alors il se peut qu'un pirate forge la requête suivante dans la barre d'URL:

 http://www.site-victime.com/pageVulnérable.php?code=phpinfo()  

On se retrouve donc avec la fonction phpinfo() qui sera exécutée via la fonction eval() et qui affichera toutes les informations clé de la configuration du moteur PHP. Ce qui constitue une atteinte flagrante à la confidentialité.

Comment s'en protéger?

Il faut bien filtrer les entrées des utilisateurs en commençant par fixer une longueur maximale à ne pas dépasser, puis en dressant une liste de fonctions PHP autorisées (dans un fichier texte ou dans la base de données) de telle sorte à vérifier si la fonction passée figure dans la liste avant d'ordonner son exécution (par la fonction eval() ou autrement).

failles_web/injection_de_code.1581184652.txt.gz · Dernière modification: 2020/02/08 18:57 par M0N5T3R