mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
87 lines
6.7 KiB
Markdown
87 lines
6.7 KiB
Markdown
# Contaminación de Parámetros
|
|
|
|
<details>
|
|
|
|
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Otras formas de apoyar a HackTricks:
|
|
|
|
* Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
|
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
|
|
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
|
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
**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) 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 contaminas cualquier parámetro, el código solo se ejecuta en el lado del servidor, 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 accountA a accountB 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 esta URL proceda una transacción de 10000, se deducirá de accountC en lugar de accountA. Así es como manipulas los parámetros en un ataque de **Contaminación de Parámetros HTTP**. Aunque el alcance de esta vulnerabilidad no se limita solo a solicitudes **GET**, también puedes realizar este ataque en una solicitud basada en **POST**. Puedes probar esta vulnerabilidad en muchos lugares como cambio de contraseña, 2FA, comentarios, subida de foto de perfil, en un parámetro donde se pasa la clave API, OTP, etc.
|
|
|
|
Cuando manipulas cualquier parámetro, su manipulación depende de cómo cada tecnología web está analizando sus parámetros. Puedes identificar tecnologías web usando “[Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/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 el post](https://miro.medium.com/max/1760/1\*POs4sP0fQVlPvTH9vw1U-A.jpeg)
|
|
|
|
Me gustaría compartir uno de mis hallazgos de HPP donde pude tomar 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, pidió un OTP para iniciar sesión
|
|
|
|
Enviar OTP
|
|
|
|
![Imagen para el post](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 para propósitos de prueba) Solicitud de Burp
|
|
|
|
![Imagen para el post](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 post](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 estaba dentro de la cuenta. Toma de Cuenta
|
|
|
|
![Imagen para el post](https://miro.medium.com/max/1698/1\*Ux-ILfCr\_Mk\_xmzzsXwNnA.jpeg)
|
|
|
|
Entonces, lo que sucedió aquí es que la aplicación de back-end 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 un OTP de shrey….@gmail.com fue enviado a radhika….@gmail.com.
|
|
|
|
**NOTA:** Aquí en una imagen en el 4º 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 el OTP era para radhika….@gmail.com pero cuando probé el OTP en shrey….@gmail.com funcionó.
|
|
|
|
## Flask & 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 Apache HTTP Server. En Flask, el parámetro será `1` (primera ocurrencia) mientras que en PHP será `2` (última ocurrencia).
|
|
|
|
<details>
|
|
|
|
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Otras formas de apoyar a HackTricks:
|
|
|
|
* Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
|
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
|
|
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
|
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|