Tabla de Contenidos
Vulnerabilidades web: Lógica de negocio
Notas del curso Hacking ético: descubriendo vulnerabilidades en aplicaciones web
Pruebas más sofisticadas que requieren think outside the box, es decir darle vueltas a las funcionalidades de la aplicación y buscar métodos no convencionales para detectar vulnerabilidades.
Estas vulnerabilidades no se detectan en los escaneos de vulnerabilidades con herramientas automáticas y dependen de la experiencia y habilidades del auditor.
Vulnerabilidades más complicadas de detectar pero con un riesgo elevado para la aplicación.
Think outside the box?
- Darle la vuelta a cómo funciona la aplicación
- Pensamiento creativo
Validación de datos
- Identificar los posibles puntos de inyección
- Validar que las validaciones de datos se realizan en el servidor y no sólo en el cliente
- Proporcionar a la aplicación información que no espera para analizar su comportamiento
Funcionalidades sensibles de ser automatizadas
- Identificar posibles funcionalidades críticas (deberían tener limitado el número de veces que se pueden ejecutar)
- Realizar pequeños test de “fuerza bruta” para ver cómo responde la aplicación
- Ejemplos:
- Publicación de comentarios
- Registro de usuarios
- Funcionalidad de login– Bypass de login
- Enumeración de usuarios
Subida de archivos no esperados
- Si la aplicación permite subir ficheros al servidor, tendremos que analizar qué tipos de fichero permite
- Subida de fichero con extensión diferente a la esperada ¿Es posible enviar al servidor archivos que no espera? ¿Cómo responde?
- Subida de fichero maliciosos ¿Es posible enviar al servidor archivos infectados? ¿Cómo responde?
- Ejemplo: Virus EICAR
- Evasión de filtros:
Content-Type: Cambia el content-Typedel archivo por el esperado (image/jpeg)- Cambia la extensión (
file.php5,file.jsp, …) - Alterna mayúsculas y minúsculas (
file.PhP,file.jSp…) - Carácter nulo:
%00(file.php%00.jpeg)
Ejemplo: Pasarela de Pagos
- Cambiar precios
- Aplicar cupones descuentos
- Alterar el stock
Explotación
Usaremos Burp para usarlo como proxy configurado en el navegador web.
PortSwigger tiene varios laboratorios relacionados con la lógica de negocio, por ejemplo poco control en el lado del cliente. En ese caso, podemos capturar la petición de añadir un producto a la cesta para modificar el valor del precio. Como el servidor no hace ninguna comprobación, “traga” con el precio y/o cantidad que pongamos.
En el laboratorio de vulnerabilidad de lógica de alto nivel, la aplicación vulnerable tampoco valida adecuadamente la entrada del usuario. Podemos modificar la petición de añadir al carrito y cambiar la cantidad de un producto por un valor negativo para que vaya descontándose el dinero que tenemos que pagar.
En el laboratorio de lógica rota de doble factor de autenticación, queremos acceder a la cuenta de otro usuario. En esta aplicación vulnerable, a acceder con unas credenciales, llega a un e-mail el código de seguridad para validar el doble factor de autenticación. Interceptando el tráfico con Burp, modificaremos la petición de inicio de sesión para modificar el valor verify de la cookie por el valor de nuestra víctima. Se enviará la petición de 2FA, pero para nuestra víctima. Probamos la misma petición en el Intruder hasta obtener un código HTTP 302. Copiaremos esa petición como URL al navegador y habremos entrado en la cuenta de la víctima sin necesidad de conocer sus credenciales.
