hacktricks/pentesting-web/parameter-pollution.md
carlospolop 63bd9641c0 f
2023-06-05 20:33:24 +02:00

5.6 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Copiado de https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654

Resumen:

La contaminación de parámetros HTTP (HPP) 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 que 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 procederá una transacción de 10000 de la cuentaA a la cuentaB, pero ¿qué pasa si agregamos otro parámetro igual "from:"?

Entonces, la URL será como https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

Cuando se procese esta URL, 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 la solicitud GET, también se puede realizar este ataque en una solicitud basada en POST. Puede 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 la clave API, OTP, etc.

Cuando se manipula cualquier parámetro, su manipulación depende de cómo cada tecnología web está analizando sus parámetros. Puede identificar tecnologías web usando "Wappalyzer". A continuación se muestra la 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 publicar

Me gustaría compartir uno de mis hallazgos de HPP donde pude tomar el control de una cuenta usando esta vulnerabilidad.

¿Cómo encontré esta vulnerabilidad?

  1. Fui a una página de inicio de sesión de ese programa, solicitó un OTP para iniciar sesión

Enviar OTP

Imagen para publicar

  1. Escribí un correo electrónico y hice clic en "Enviar contraseña de un solo uso"

  2. Interceptar la solicitud usando burp suite y agregué otro correo electrónico usando el mismo parámetro (creé dos correos electrónicos para fines de prueba) Solicitud de Burp

Imagen para publicar

  1. Recibí un OTP de shrey……@gmail.com en mi otra cuenta radhika…..@gmail.com OTP

Imagen para publicar

  1. Copié el OTP y fui a shrey....@gmail.com en la pantalla de inicio de sesión del programa, ingresé este OTP y estaba en la cuenta. Toma de cuenta

Imagen para publicar

Entonces, lo que sucedió aquí es que la aplicación de back-end tomó el valor del primer parámetro "correo electrónico" para generar un OTP y usó el valor del segundo parámetro "correo electrónico" 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 en el 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ó.