hacktricks/pentesting-web/parameter-pollution.md

5.8 KiB

Pollution de paramètres

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Aperçu de la pollution de paramètres HTTP (HPP)

La pollution de paramètres HTTP (HPP) est une technique d'attaque impliquant la manipulation des paramètres HTTP pour modifier le comportement attendu d'une application web. Ce type d'attaque est relativement simple mais peut être remarquablement efficace. Bien que la manipulation des paramètres se produise côté serveur et ne soit pas visible pour l'utilisateur, les changements de comportement résultants peuvent être observés côté client.

Exemple de pollution de paramètres HTTP (HPP)

Considérons une URL de transaction standard pour une application bancaire :

URL : https://www.victim.com/send/?from=accountA&to=accountB&amount=10000

Cette URL initie une transaction de 10 000 de accountA à accountB. Cependant, l'introduction d'un autre paramètre from comme suit :

URL manipulée : https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

pourrait entraîner la déduction de la transaction à partir de accountC au lieu de accountA. Cela illustre comment HPP peut être utilisé pour manipuler les paramètres. Notamment, cette vulnérabilité n'est pas limitée aux requêtes GET mais peut également être exploitée dans les requêtes POST à travers diverses fonctionnalités telles que les changements de mot de passe, l'authentification à deux facteurs ou les transmissions de clés API.

Il est important de reconnaître que l'analyse des paramètres dépend de la technologie web spécifique utilisée. Des outils comme Wappalyzer peuvent être utilisés pour identifier les technologies web et comprendre leurs comportements d'analyse des paramètres.

PHP

Un exemple notable d'exploitation de HPP impliquait les étapes suivantes :

  1. Manipulation de l'OTP :
  • Une page de connexion demandant un OTP était la cible.
  • Après avoir envoyé une demande d'OTP, la requête HTTP suivante a été interceptée à l'aide de Burp Suite.
  • Un autre e-mail a été ajouté à la requête, dupliquant efficacement le paramètre email.
  • L'OTP destiné au premier e-mail a été envoyé par erreur au deuxième e-mail, permettant un accès non autorisé au premier compte.

Cet incident souligne comment l'application backend a traité les paramètres email, en utilisant le premier pour la génération de l'OTP et le second pour la livraison de l'OTP.

Analyse des paramètres dans Flask & PHP

Les différentes technologies web analysent les paramètres de manière unique. Par exemple, avec une requête comme a=1&a=2, Flask et PHP interpréteront le paramètre différemment :

  • Flask : Prend la première occurrence (a=1).
  • PHP (sur le serveur HTTP Apache) : Prend la dernière occurrence (a=2).

Cette différence dans la gestion des paramètres peut avoir un impact significatif sur le comportement de l'application et sa vulnérabilité aux attaques HPP. Plus de détails à ce sujet peuvent être trouvés dans cette analyse.

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :