Nuevos labs cada semana — Accede a todos desde 5€/mes
Ver labs →Authentication Bypass
Bypasses en JWT, 2FA, OTP y mecanismos de login
Respuesta rápida
¿Qué es Authentication Bypass?
Las vulnerabilidades de autenticación permiten acceder a cuentas ajenas sin credenciales válidas. Incluyen ataques a JWT, bypass de 2FA, brute force de OTP, manipulación de tokens y flaws en flujos de OAuth.
Severidad
Crítico
Frecuencia
Común
Payloads
11
Pasos
6
Severidad
Crítico
Frecuencia
Común
Payloads
11
La autenticación es el primer muro de defensa. Los fallos van desde tokens débiles hasta lógica rota en flujos multi-paso (registro → verificación → login). Los JWTs mal configurados son un target favorito porque un solo fallo permite forjar tokens válidos para cualquier usuario.
Dónde buscar
Tokens JWT
Decodifica con jwt.io — revisa algoritmo, claims, expiración. Busca información sensible en el payload.
Flujo de OTP/2FA
Endpoints de verificación, reset de contraseña. Prueba brute force, null values, reutilización de códigos.
OAuth/SSO
Flujos de login con Google, GitHub, etc. ¿Se puede saltar el 2FA vía OAuth? ¿El state param es validado?
Password reset
¿El token es predecible? ¿Expira? ¿Invalida sesiones previas? ¿Se puede reenviar a otro email?
Cookies de sesión
¿HttpOnly? ¿Secure? ¿SameSite? ¿El valor es predecible o se puede forjar?
Metodología
Analizar el flujo completo
Mapea: registro → verificación → login → sesión → refresh → logout. Cada paso es un vector.
Decodificar JWT
jwt.io para ver claims. Busca: alg, role, userId, exp, iss. ¿Hay datos sensibles en el payload?
Probar algoritmos JWT
Cambia RS256→HS256 (usa clave pública como secreto HMAC). Prueba alg:none. Inyecta JWK en header.
Testear OTP
¿Rate limiting? Prueba 000000, null, string vacío. ¿El código aparece en la respuesta o headers?
Verificar 2FA bypass
¿OAuth salta 2FA? ¿Se puede desactivar sin re-autenticar? ¿Los backup codes son reutilizables?
Probar reset de contraseña
¿El token es largo y aleatorio? ¿Caduca? ¿Se invalida después de usar? ¿Se puede reenvilar a otro email?
Caso real
Account Takeover vía OTP brute force + email normalization
Descubrir normalización inconsistente
El endpoint de generar OTP acepta 'User@email.com' pero el de verificar acepta 'USER@email.com' — ambos apuntan al mismo usuario.
Generar permutaciones de email
Script en Python con itertools para generar todas las variaciones de capitalización del email de la víctima.
Brute force distribuido
OTP de 4 dígitos = 10,000 combinaciones. Sin rate limiting → probar 4 códigos por variación de email.
Account Takeover
En ~12 minutos se encuentra el código correcto. Se cambia la contraseña de la víctima.
Lección: Dos bugs débiles (normalización inconsistente + sin rate limiting) combinados producen un Account Takeover completo. Siempre prueba la consistencia de normalización entre endpoints.
Payloads
JWT none algorithm
{"alg":"none","typ":"JWT"}.{"sub":"admin"}. (firma vacía)OTP null bypass
{"email": "victim@email.com", "code": null}OTP vacío
{"email": "victim@email.com", "code": ""}Email normalization
Victim@Email.COM vs victim@email.com vs VICTIM@email.com
Password reset token reuse
Usar el mismo token de reset dos veces — ¿funciona?
Payloads avanzados(requiere cuenta)
jwt_tool — all tests
python3 jwt_tool.py <TOKEN> -M at -t "https://target.com/api/me" -rh "Authorization: Bearer"
Algorithm confusion RS256→HS256
Extraer clave pública del servidor → usarla como secreto HMAC → firmar JWT con HS256
JWK header injection
{"alg":"RS256","jwk":{"kty":"RSA","n":"...","e":"AQAB"}} ← tu propia clave públicaKID path traversal
{"alg":"HS256","kid":"../../../dev/null"} → firma con string vacío2FA device trust leak
machine_id en OAuth batch API = datr cookie → setear cookie → bypass 2FA en recovery
Response manipulation
Interceptar respuesta → cambiar "role":"user" → "role":"admin"
Contenido exclusivo
Crea tu cuenta gratis para acceder a payloads avanzados, scripts y técnicas de bypass
Crear cuenta gratisHerramientas
jwt_tool
Suite completa de testing JWT: prueba todos los ataques conocidos automáticamente.
python3 jwt_tool.py <TOKEN> -M at
jwt.io
Decodificador visual de JWT. Pega el token y ve header, payload y firma.
https://jwt.io/
Burp Intruder
Brute force de OTP con payloads numéricos secuenciales.
Intruder → Sniper → Payload: Numbers 0000-9999
Tips
Decodifica siempre el JWT
Muchos JWTs contienen datos sensibles en el payload: emails, roles, IDs internos.
4 dígitos = brute-forceable
10,000 combinaciones. Si no hay rate limiting, puedes probar todos en minutos.
OAuth puede saltar 2FA
Si la app permite login con Google y no revalida 2FA después, es bypass directo.
Refresh tokens sin rotación
Si el refresh token no cambia después de usarlo, un token robado da acceso permanente.
Revisa las sesiones post-reset
Cambiar contraseña debería invalidar TODAS las sesiones activas. Si no lo hace, es un bug.
Practica Authentication Bypass con labs reales
Aplica estas técnicas en entornos seguros basados en reportes reales de bug bounty.