Nuevos labs cada semana — Accede a todos desde 5€/mes
Ver labs →Pasarelas de Pago
Vulnerabilidades en flujos de compra, suscripción y transacciones
Respuesta rápida
¿Qué es Pasarelas de Pago?
Las pasarelas de pago son targets de alto impacto. Los bugs aquí involucran manipulación de precios, race conditions en transacciones, CSRF en cancelaciones y bypass de verificaciones de pago.
Severidad
Crítico
Frecuencia
Común
Payloads
8
Pasos
6
Severidad
Crítico
Frecuencia
Común
Payloads
8
Los flujos de pago son complejos: carrito → checkout → procesamiento → confirmación. Cada paso puede tener validaciones client-side que no se verifican en el servidor. Las race conditions son especialmente comunes en transferencias y aplicación de cupones.
Dónde buscar
Carrito y checkout
Parámetros de precio, cantidad, moneda en el request de compra. ¿Se validan server-side?
Códigos de descuento
Aplicar cupones es un target clásico de race condition: enviar múltiples requests simultáneos.
Transferencias de dinero
Enviar dos transferencias simultáneas con el mismo saldo → posible double-spending.
Suscripciones
Cancelación sin CSRF token, downgrade/upgrade sin revalidar pago, trial abuse.
Generación de facturas
Si las facturas se generan como PDF desde HTML, puede haber SSRF (ver contexto HTML to PDF).
Metodología
Analizar el flujo completo
Mapea: selección → carrito → checkout → pago → confirmación. Intercepta cada request.
Manipular precio/cantidad
Cambia price=1000 a price=1, quantity=1 a quantity=-1, currency=USD a currency=ARS.
Probar race conditions
Cupones: envía 50 requests aplicando el mismo cupón simultáneamente. Transferencias: dos a la vez con el mismo saldo.
CSRF en operaciones
¿La cancelación de suscripción tiene token CSRF? ¿El cambio de plan? ¿La eliminación de método de pago?
Añadir items post-checkout
Inicia el pago con 1 item. Mientras se procesa, añade más items al carrito. ¿Se cobran al precio original?
Verificar webhooks
¿La app verifica la firma del webhook de Stripe/PayPal? Si no, puedes falsificar confirmaciones de pago.
Caso real
Race condition en cupón de descuento → compras gratis
Identificar endpoint de cupón
POST /api/cart/apply-coupon con body {code: 'SAVE50'}. Aplica 50% de descuento.
Enviar requests simultáneos
Turbo Intruder con 50 requests idénticos en paralelo. El cupón se aplica 3 veces antes de marcarse como usado.
Resultado
50% + 50% + 50% = -50% del precio. El sistema permite precio negativo → compra gratis + crédito.
Lección: Las operaciones de cupón deben ser atómicas. Sin transacciones de BD o locks, las race conditions son inevitables. Siempre prueba cupones con requests concurrentes.
Payloads
Precio negativo
POST /api/checkout {"price": -100, "quantity": 1}Cantidad negativa
POST /api/cart/add {"productId": "123", "quantity": -5}Cambio de moneda
POST /api/checkout {"currency": "CLP"} (1 USD = 900 CLP)Race en cupón
seq 50 | xargs -P 50 curl -X POST .../apply-coupon -d 'code=SAVE50'
Payloads avanzados(requiere cuenta)
Double-spending race
Enviar 2 transferencias simultáneas: {to: B, amount: 100} + {to: C, amount: 100} (saldo=100)CSRF cancelación
<img src="https://target.com/api/subscription/cancel">
Webhook forgery
POST /webhooks/stripe {"type":"checkout.session.completed","data":{"object":{"paid":true}}}Items post-checkout
Iniciar pago → mientras carga → POST /api/cart/add → items extra no cobrados
Contenido exclusivo
Crea tu cuenta gratis para acceder a payloads avanzados, scripts y técnicas de bypass
Crear cuenta gratisHerramientas
Turbo Intruder
Envía 50+ requests simultáneos para explotar race conditions en pagos.
Burp → Turbo Intruder → race.py template → gate='race'
Burp Repeater Group Send
Alternativa rápida a Turbo Intruder para race conditions simples.
Seleccionar múltiples tabs → Click derecho → Send group (parallel)
Tips
Los cupones son el target #1
Envía el mismo cupón 50 veces en paralelo. Si se aplica más de una vez, es race condition.
Prueba precios negativos
Cambia el precio a negativo en el request. Muchos backends no validan que sea positivo.
Webhook sin firma = falsificable
Si la app no verifica la firma del webhook de Stripe, puedes falsificar confirmaciones de pago.
Monitorea el carrito durante el pago
Si puedes añadir items mientras el pago se procesa, la app puede cobrar menos de lo entregado.
Practica Pasarelas de Pago con labs reales
Aplica estas técnicas en entornos seguros basados en reportes reales de bug bounty.