hacktricks/pentesting-web/parameter-pollution.md

6.9 KiB

Pollution de Paramètres

Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres moyens de soutenir HackTricks :

Copié depuis https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654

Résumé :

La Pollution de Paramètres HTTP (HPP) consiste à polluer les paramètres HTTP d'une application web pour réaliser une tâche malveillante spécifique. Cela se réfère à la manipulation de la manière dont un site web traite les paramètres qu'il reçoit pendant les requêtes HTTP. Cela change le comportement d'un site web de celui qui était prévu. La pollution de paramètres HTTP est une attaque simple mais efficace.

Lorsque vous polluez un paramètre, le code s'exécute uniquement côté serveur, ce qui est invisible pour nous, mais nous pouvons voir les résultats sur notre écran. Le processus intermédiaire est une boîte noire.

Par exemple, il y a une URL https://www.anybank.com/send qui a trois paramètres :

  1. from :
  2. to :
  3. amount :

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

Maintenant, c'est une URL normale qui procédera à une transaction de 10000 de accountA à accountB, mais que se passe-t-il si nous ajoutons un autre paramètre identique “from :”

Donc l'URL sera comme https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

Lorsque cette URL procédera à une transaction de 10000, elle sera déduite de accountC plutôt que de accountA. C'est ainsi que vous manipulez les paramètres dans une attaque de Pollution de Paramètres HTTP. Bien que la portée de cette vulnérabilité ne soit pas limitée uniquement aux requêtes GET, vous pouvez également réaliser cette attaque sur une requête basée sur POST. Vous pouvez essayer cette vulnérabilité dans de nombreux endroits comme le changement de mot de passe, la 2FA, les commentaires, le téléchargement de photo de profil, sur un paramètre où la clé API est passée, l'OTP, etc.

Lorsque vous manipulez un paramètre, sa manipulation dépend de la manière dont chaque technologie web analyse ses paramètres. Vous pouvez identifier les technologies web en utilisant “Wappalyzer”. Ci-dessous la capture d'écran de certaines technologies et de leur analyse de paramètres.Technologies et leur analyse de paramètres

Image for post

Je voudrais partager une de mes découvertes de HPP où j'ai pu prendre le contrôle d'un compte en utilisant cette vulnérabilité.

Comment ai-je trouvé cette vulnérabilité ?

  1. Je suis allé sur une page de connexion de ce programme, il a demandé un OTP pour se connecter

Envoyer OTP

Image for post

2. J'ai tapé un email et cliqué sur "Envoyer un mot de passe à usage unique"

3. J'ai intercepté la requête en utilisant burp suite et ajouté un autre email en utilisant le même paramètre (j'ai créé deux emails à des fins de test)Requête Burp

Image for post

4. J'ai reçu un OTP de shrey……@gmail.com sur mon autre compte radhika…..@gmail.com OTP

Image for post

5. J'ai copié l'OTP et suis allé sur shrey….@gmail.com sur l'écran de connexion de ce programme, j'ai entré cet OTP et j'étais dans le compte.Prise de Contrôle du Compte

Image for post

Alors ce qui s'est passé ici, c'est que l'application back-end a pris la valeur du premier paramètre "email" pour générer un OTP et a utilisé la valeur du second paramètre "email" pour fournir la valeur, ce qui signifie qu'un OTP de shrey….@gmail.com a été envoyé à radhika….@gmail.com.

NOTE : Ici, dans une image à la 4ème étape où j'ai reçu un OTP à radhika….@gmail.com, j'étais confus parce que le message disait Bonjour Radhika, donc je pensais que le paramètre n'était pas pollué et que l'OTP était pour radhika….@gmail.com mais quand j'ai essayé l'OTP sur shrey….@gmail.com, cela a fonctionné.

Flask & PHP

Dans ce compte-rendu, vous pouvez voir comment une requête HTTP comme a=1&a=2 sera interprétée différemment par Flask et PHP fonctionnant sur un serveur HTTP Apache. Dans Flask, le paramètre sera 1 (première occurrence) tandis que dans PHP, il sera 2 (dernière occurrence).

Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres moyens de soutenir HackTricks :