# Contaminación de Parámetros
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtén el [**swag oficial de PEASS & HackTricks**](https://peass.creator-spring.com) * **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
**Copiado de** [**https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654**](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654) **Resumen:** La Contaminación de Parámetros HTTP (HPP, por sus siglas en inglés) significa contaminar los parámetros HTTP de una aplicación web para lograr una tarea maliciosa específica. Se refiere a manipular cómo un sitio web trata los parámetros que recibe durante las solicitudes HTTP. Cambia el comportamiento de un sitio web de su intención original. La contaminación de parámetros HTTP es un tipo de ataque simple pero efectivo. Cuando se contamina cualquier parámetro, el código se ejecuta solo en el lado del servidor, lo cual es invisible para nosotros, pero podemos ver los resultados en nuestra pantalla. El proceso intermedio es una caja negra. Por ejemplo, hay una URL https://www.anybank.com/send que tiene tres parámetros: 1. from: 2. to: 3. amount: **URL: https://www.anybank.com/send/?from=accountA\&to=accountB\&amount=10000** Ahora esta es una URL normal que realizará una transacción de 10000 desde la cuentaA a la cuentaB, pero ¿qué sucede si agregamos otro parámetro igual **"from:"**? Entonces la URL sería como **https://www.anybank.com/send/?from=accountA\&to=accountB\&amount=10000\&from=accountC** Cuando esta URL se procese, se deducirán 10000 de la cuentaC en lugar de la cuentaA. Así es como se manipulan los parámetros en el ataque de **Contaminación de Parámetros HTTP**. Aunque el alcance de esta vulnerabilidad no se limita solo a las solicitudes **GET**, también se puede realizar este ataque en una solicitud basada en **POST**. Puedes probar esta vulnerabilidad en muchos lugares como cambio de contraseña, 2FA, comentarios, carga de foto de perfil, en un parámetro donde se pasa una clave de API, OTP, etc. Cuando manipulas cualquier parámetro, su manipulación depende de cómo cada tecnología web analiza sus parámetros. Puedes identificar tecnologías web usando "[Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/)". A continuación se muestra una captura de pantalla de algunas tecnologías y su análisis de parámetros. Tecnologías y su análisis de parámetros ![Imagen para el artículo](https://miro.medium.com/max/1760/1\*POs4sP0fQVlPvTH9vw1U-A.jpeg) Me gustaría compartir uno de mis hallazgos de HPP donde pude tomar el control de una cuenta utilizando esta vulnerabilidad. **¿Cómo encontré esta vulnerabilidad?** 1. Fui a una página de inicio de sesión de ese programa, solicitaba un OTP para iniciar sesión. Enviar OTP ![Imagen para el artículo](https://miro.medium.com/max/600/1\*s-M09yWBylPVEhA6\_e0nSw.jpeg) 2. Escribí un correo electrónico y hice clic en "Enviar Contraseña de Un Solo Uso". 3. Intercepté la solicitud usando Burp Suite y agregué otro correo electrónico usando el mismo parámetro (creé dos correos electrónicos con fines de prueba). Solicitud de Burp ![Imagen para el artículo](https://miro.medium.com/max/1737/1\*z\_RpnZyKHLn6B4Lz4ONT3Q.png) 4. Recibí un OTP de shrey....@gmail.com en mi otra cuenta radhika....@gmail.com OTP ![Imagen para el artículo](https://miro.medium.com/max/784/1\*a671GrRtiMYfLUL7nURD8Q.png) 5. Copié el OTP y fui a shrey....@gmail.com en la pantalla de inicio de sesión de ese programa, ingresé este OTP y entré en la cuenta. Toma de Control de Cuenta ![Imagen para el artículo](https://miro.medium.com/max/1698/1\*Ux-ILfCr\_Mk\_xmzzsXwNnA.jpeg) Entonces, lo que sucedió aquí es que la aplicación backend tomó el valor del primer parámetro "**email**" para generar un OTP y usó el valor del segundo parámetro "**email**" para suministrar el valor, lo que significa que se envió un OTP de shrey....@gmail.com a radhika....@gmail.com. **NOTA:** Aquí, en una imagen del cuarto paso donde recibí un OTP a radhika....@gmail.com, estaba confundido porque el mensaje decía "Hola Radhika", así que pensé que el parámetro no estaba contaminado y que el OTP era para radhika....@gmail.com, pero cuando probé el OTP en shrey....@gmail.com, funcionó. ## Flask y PHP En [**este informe**](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution) puedes ver cómo una consulta HTTP como `a=1&a=2` será interpretada de manera diferente por Flask y PHP ejecutándose en un servidor Apache HTTP. En Flask, el parámetro será `1` (primera aparición), mientras que en PHP será `2` (última aparición).
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres que tu **empresa sea anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com) * **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).