Attaque par pollution des paramètres

L’attaque par pollution de caractères dans une requête GET est une technique d’attaque par injection qui vise à altérer les paramètres d’une requête GET en y ajoutant des caractères malveillants pour provoquer des comportements non désirés dans l’application web ciblée. Les caractères couramment utilisés dans ce type d’attaque peuvent inclure :

  1. Les caractères spéciaux : les caractères spéciaux tels que “&”, “=”, “?”, “#” sont couramment utilisés pour séparer les paramètres de la requête et pour ajouter des valeurs à chaque paramètre.
  2. Les caractères de ponctuation : les caractères de ponctuation tels que “.” “,” “;” peuvent être utilisés pour séparer les valeurs des paramètres.
  3. Les caractères d’échappement : les caractères d’échappement tels que “” et “‘” peuvent être utilisés pour éviter que certains caractères soient interprétés par l’application cible.
  4. Les caractères codés : les caractères codés peuvent être utilisés pour contourner les filtres de sécurité de l’application cible. Par exemple, “%20” peut être utilisé pour représenter un espace.
  5. Les caractères alphanumériques : les caractères alphanumériques tels que “a-z”, “A-Z” et “0-9” peuvent également être utilisés pour altérer les paramètres de la requête.

Il est important de noter que les caractères utilisés dans l’attaque par pollution de caractères peuvent varier en fonction de l’application ciblée et de la manière dont elle traite les requêtes GET.

traitement des paramètres par langage permettant d'exploiter la pollution des paramètres

Exemple d’une application PHP vulnérable à la pollution des paramètres

Supposons que nous avons une application web écrite en PHP qui utilise une requête GET pour récupérer des données d’un utilisateur. La page récupère l’ID de l’utilisateur via un paramètre GET appelé “id” et affiche les informations de cet utilisateur. Cependant, cette application web est vulnérable à la pollution des paramètres, ce qui signifie qu’un attaquant peut modifier le paramètre “id” pour afficher les informations d’un autre utilisateur ou même injecter du code malveillant.

Voici un exemple d’exploitation de cette vulnérabilité :

Supposons que l’URL de la page soit : http://example.com/user.php?id=1

Un attaquant peut modifier le paramètre “id” en ajoutant des caractères malveillants, tels que : http://example.com/user.php?id=1′; DROP TABLE users; —

Ce qui entraînera l’exécution d’une injection SQL malveillante, qui supprimera la table des utilisateurs dans la base de données.

Pour éviter cette vulnérabilité, les développeurs PHP peuvent mettre en place des mesures de sécurité telles que :

  1. L’utilisation des fonctions de validation de PHP : Les développeurs PHP peuvent utiliser les fonctions de validation de PHP telles que “filter_input()” pour valider les entrées utilisateur et s’assurer qu’elles ne contiennent pas de caractères malveillants.
  2. L’utilisation de fonctions de nettoyage de PHP : Les développeurs PHP peuvent utiliser des fonctions telles que “mysqli_real_escape_string()” pour nettoyer les données avant de les utiliser dans les requêtes SQL.
  3. La mise en place de filtres de sécurité : Les développeurs PHP peuvent mettre en place des filtres de sécurité pour bloquer les requêtes malveillantes et les attaques de pollution des paramètres.

En conclusion, la pollution des paramètres est une vulnérabilité courante dans les applications web écrites en PHP. En mettant en place des mesures de sécurité appropriées telles que la validation des entrées utilisateur, la nettoyage des données et la mise en place de filtres de sécurité, les développeurs PHP peuvent minimiser les risques de pollution des paramètres et garantir la sécurité de leurs applications web.

Autres ressources

Leave a Reply