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 :
- Si vous souhaitez voir votre entreprise annoncée dans HackTricks ou télécharger HackTricks en PDF, consultez les PLANS D'ABONNEMENT !
- Obtenez le merchandising officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection de NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de hacking en soumettant des PRs aux dépôts github HackTricks et HackTricks Cloud.
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 :
- from :
- to :
- 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
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é ?
- Je suis allé sur une page de connexion de ce programme, il a demandé un OTP pour se connecter
Envoyer OTP
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
4. J'ai reçu un OTP de shrey……@gmail.com sur mon autre compte radhika…..@gmail.com OTP
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
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 :
- Si vous souhaitez voir votre entreprise annoncée dans HackTricks ou télécharger HackTricks en PDF, consultez les PLANS D'ABONNEMENT !
- Obtenez le merchandising officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection de NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de hacking en soumettant des PRs aux dépôts github HackTricks et HackTricks Cloud.