Ciberseguridad

Realizar un ataque Parameter Tampering

Si quieres conocer qué es un ataque de tipo Parameter Tampering, te explicamos en qué consiste esta vulnerabilidad de seguridad y realizamos una práctica para mostrarte cómo funciona un ataque de este tipo.

Publicado el 20 de Agosto de 2019
Compartir

Qué es Parameter Tampering

Un ataque de tipo Parameter Tampering es un tipo de hacking ético que busca este tipo de vulnerabilidad, de la que hay que ser consciente de su importancia y por qué se debe evitar.

La vulnerabilidad de tipo Parameter Tampering consiste en la “manipulación del valor de algún parámetro que se intercambia entre cliente y servidor con fines malintencionados”.

Un ejemplo de esta vulnerabilidad es el siguiente.

Imagen 0 en Realizar un ataque Parameter Tampering

 

Supongamos que accedemos a una aplicación, nos logamos y tenemos un botón para consultar nuestros datos. Al pulsar ese botón, se realiza una petición al servidor, en la cual se le envía un parámetro con nuestro DNI. El servidor recibe esa petición, consulta en la base de datos los datos que tiene para ese DNI y los envía en una respuesta.

¿Qué pasaría si el usuario modifica la petición que envía ese botón y en lugar de poner su DNI pone el DNI de otra persona?

Si existe esta vulnerabilidad, el servidor no va a comprobar si el usuario tiene permiso para ello, y va a devolver los datos de otra persona.

Cómo evitar el Parameter Tampering

Para evitar un ataque de este tipo, fundamentalmente se debe:

  • Validar siempre en el servidor, es decir, cada acción que realice el usuario debe ser validada en el servidor para confirmar que tiene permiso para ello. En el ejemplo anterior, el servidor debe validar que el usuario con el que se ha accedido tiene permisos para consultar los datos del DNI que ha modificado.
  • No enviar datos innecesarios. En el mismo ejemplo previo se está enviando como parámetro el DNI del usuario que está accediendo. Esto no debería ser necesario, ya que el servidor podría, a partir del id de sesión del usuario, sacar cuál es el nombre de usuario que tiene esa sesión, y a partir del mismo consultar en su base de datos qué DNI tiene el usuario y darle sus datos. De esta forma se evita este tipo de problemas, ya que los usuarios no envían ningún parámetro.

Ejemplo de cómo hacer un ataque tipo Parameter Tampering

Para realizar este tipo de ataque utilizaremos una herramienta llamada OWASP ZAP, con la que vamos a capturar la petición que hagamos a través del navegador, antes de que se envíe al servidor, para modificar un parámetro.

Imagen 1 en Realizar un ataque Parameter Tampering

Por defecto herramienta escucha en el puerto 8080, pero en este caso lo tenemos configurado para que lo haga en el puerto 8089, así que en el navegador tenemos que configurar el proxy para que todo el tráfico se reenvíe al puerto 8089 y pase por la herramienta.

En Firefox se hace en esta pantalla.

Imagen 2 en Realizar un ataque Parameter Tampering

A continuación, accedemos a una aplicación tengo tenemos preparada, en la que tenemos una serie de artículos y un precio.

Imagen 3 en Realizar un ataque Parameter Tampering

Si compramos una escalera, que tiene un precio de 20, nos aparecerá en la pantalla un mensaje indicando que la hemos comprado a ese precio.

Imagen 4 en Realizar un ataque Parameter Tampering

Ahora vamos a intentar modificar ese precio para comprar la escalera más barata. Para ello vamos a la herramienta anterior y pulsamos el botón correspondiente para que capture las peticiones.

Imagen 5 en Realizar un ataque Parameter Tampering

De nuevo vamos al navegador y pulsamos en el botón de comprar la escalera. En esta ocasión el proceso de compra no continúa, porque en la herramienta tenemos parada la petición, y ha aparecido una nueva pestaña con el nombre “Punto de interrupción”.

Imagen 6 en Realizar un ataque Parameter Tampering

En la misma podemos ver los datos de la petición que se está enviando, y los parámetros de la misma que se envían, que en este caso son “artículo” y “precio”, los cuáles indican la escalera y el coste de la misma, que son 20.

Modificamos el valor de compra y lo cambiamos por 1, y pulsamos en el botón para que continúe el envío de la petición.

Imagen 7 en Realizar un ataque Parameter Tampering

Se reanuda el proceso de compra, y al finalizar vemos que en pantalla nos muestra el mensaje de compra indicando que se ha comprado una escalera con un precio de 1.

Imagen 8 en Realizar un ataque Parameter Tampering

Para evitar que se produzca este tipo de ataque, habría que evitar enviar el precio del artículo, enviando únicamente el producto que se está comprando, y que el servidor haga una consulta a la base de datos para consultar el precio de la misma.


Compartir este post

También te puede interesar...

Tecnología

Qué es el hacking

19 Agosto 2019 Carlos Lucena Herrera
Curso de Hacking web

Curso de Hacking web

2 horas y 43 segundos · Curso

Con este curso de hacking web podrás comenzar desde cero tu formación en ciberseguridad, con nuestro curso de iniciación online.

  • Hacking Ético
Hacking con buscadores

Curso de Hacking con buscadores: Google, Bing y Shodan

2 horas y 48 minutos · Curso

Aprende a filtrar consultas avanzadas en diferentes motores de búsqueda más usados, para poder hacer auditorias de archivos indexados en la red.

  • Hacking Ético
Artículos
Ver todos