Hoy te demuestro por qué deberías tener cuidado y comprobar muy bien la web para no tener problemas. Vamos a ver cómo se puede mandar peticiones a una web para comprar un artículo que no esté disponible y como nos va a dejar a través de Burp Suite, es un fallo de la página al no comprobar la operación correctamente.
- Se pueden hacer muchas cosas más a parte de este ejemplo.
- Está técnica que muestro te servirá para probar tus páginas web y ver si tiene estos fallos.
- La única finalidad de esta demostración es que veas los riesgos que existen y el sobre esfuerzo que tendrá tu negocio si no se hacen las cosas bien desde un primer momento.
Es hora de empezar el tutorial y ver cómo manipular y envíar paquetes a las páginas web a través de Burp Suite.
Tenemos que descargar Burp Suite, necesitarás tener instalado java, para ello pincha aquí.
Ejecutar el arhivo jar (Burp Suite) descargado en el paso 1. Para ello utilizamos en el cmd o terminal el siguiente comando (Debes situarte en el directorio que está el archivo), donde pone nombre_archivo pon el archivo Burp Suite descargado en el paso 1.
java -jar nombre_archivoLo primero que nos saldrá es para aceptar las condiciones, pinchamos en I accept.
En la siguiente ventana damos a Next.
En la pantalla que aparecerá ahora puedes cargar configuraciones o dejarlas por defecto, yo las dejo como vienen, y damos en Start Burp.
Cuando esté abierto el programa pinchamos en la pestaña proxy y en las pestañas que vemos debajo elegimos Options. Aquí configuraremos un proxy para que todo el tráfico pase por el programa.
Aquí es donde tenemos que configurar el proxy, a continuación os dejo unas imágenes de la configuración que debe tener.
[color=#a9a9a9]Pincha en la imagen para ampliar[/color]
El resto de configuración (que no aparece aquí) queda por defecto, tal y como viene en Burp Suite. Ahora para que no se intercepte cada paquete vamos a la pestaña de Intercept y pinchamos donde pone Intercep is on, para que se quede como muestro en la siguiente imagen:
Ya lo tenemos configurado.
Vamos a nuestro navegador preferido y hacemos que navegue a internet a través del proxy que configuramos antes (IP: 127.0.0.1, puerto: 8080). Yo lo voy a hacer en Mozilla Firefox, debemos entrar en opciones, tal y como vemos en la siguiente imagen:
Se nos abrirá una nueva pestaña, elegimos Avanzado, y dentro Red, ahí pincharemos en Configuración:
Lo configuramos como en la próxima imagen y pinchamos en Aceptar:
Ya podemos navegar a través del proxy, así que Burp Suite ya capturará los paquetes.
Navegamos a la página web (en mi caso una tienda online) y vemos que no tienen todas las tallas, yo voy a comprar en este caso una talla 38, y una 40, para ver los datos de los paquetes que se envían.
Buscamos en el Burp Suite los paquetes enviados, para ello pincha en la pestaña Target, lo que me interesa ver es la petición de compra, así que miramos los envíos POST a la página que realice el “añadir al carrito”, y ahí investigamos que parámetros pueden servirnos.
Cuando tenemos el paquete deseado y sabemos que hacer, le seleccionamos damos click derecho del ratón y nos saldrán varias opciones, elegimos Send to Repeater:
Veremos que la opción del menú de arriba llamada Repeater se pone naranja, pinchamos en ella y veremos lo siguiente:
[color=#a9a9a9]Pincha en la imagen para ampliar[/color]
Si cambiamos parámetros aquí, podemos hacer peticiones al servidor que no son permitidos desde la web (también se pueden las peticiones permitidas), porque la página no está preparada para ellos, y no se deberían hacer, pero que gracias a Burp Suite podrás cambiar.
En este caso yo he comprado varias tallas, como quiero la 36 que no está disponible, compro la 38, la 40, y descubro que en los paquetes POST existe un identificador que cambia 2 numeros y casualmente tienen que ver con las tallas, mirar las 2 imágenes siguientes:
Entonces si al paquete que envíe al Repeater le cambio la línea:
cartAction=add&pid=04376540940Por la siguiente:
cartAction=add&pid=04376540936¿Añadire la talla 36 al carrito? Vamos a probar, para enviar el paquete modificado (o sin modificar) damos a Go. Vemos en la siguiente imagen como la petición se ha procesado correctamente.
[color=#a9a9a9]Pincha en la imagen para ampliar[/color]
Si me meto en la página web y entro en el carrito, vemos que se ha agregado el producto, nos muestra un mensaje de que lo elimine que no está disponible, pero no debería dejar agregarlo.
Ahora no puedo dar al botón para terminar mi compra, el botón nos sale gris:
Pues nada damos click derecho al botón y pulsamos en inspeccionar elemento, buscamos la opción disabled del botón y la eliminamos:
[color=#a9a9a9]Pincha en la imagen para ampliar[/color]
Si vamos a pinchar ahora en el botón, nos deja finalizar nuestra compra, porque no hace nada más que comprobación en el lado del cliente:
Aquí lo único que se ha tratado es de concienciar a la hora de programar una página web (no de que ataques páginas), ya que existen muchas herramientas que nos facilitan hacer cosas que no se deberían, en este caso no tiene mucho sentido comprar algo que no te van a enviar, pero si mucha gente hace esto la empresa deberá devolver el dinero, lo que conlleva a que sus trabajadores deberán dedicar tiempo a esto y no podrán hacer otro trabajo.
Imaginaros si en vez de añadir al carrito un artículo no disponible, realizamos una compra por 0 € y nos llevamos artículos por valor de 1000 €. Estos fallos existen en internet y las empresas se deben concienciar e invertir en su seguridad, porque puede ser que estos fallos fácilmente evitables les lleven a la quiebra.