Redireccion Abierta
Redirigir usuarios a URLs de parametros de query sin validar permite a los atacantes crear links de phishing que parecen venir de tu dominio de confianza.
Cómo Funciona
Las redirecciones abiertas ocurren cuando una aplicacion toma una URL del input del usuario (parametro de query, campo de formulario o header) y redirige al usuario sin validacion. Los atacantes explotan esto para phishing: construyen un link como https://tuapp.com/login?redirect=https://evil.com/fake-login. La victima ve el dominio de confianza en la URL y hace click. Despues de iniciar sesion en el sitio legitimo, son redirigidos a la pagina de phishing del atacante que imita el sitio original y pide informacion adicional. Los flujos de OAuth son especialmente vulnerables — una redireccion abierta en la URL de callback de OAuth puede filtrar codigos de autorizacion a servidores controlados por el atacante.
app.get('/login', (req, res) => {
// After authentication...
const redirectUrl = req.query.redirect || '/';
res.redirect(redirectUrl);
// Attacker: /login?redirect=https://evil.com
});app.get('/login', (req, res) => {
const redirectUrl = req.query.redirect || '/';
const url = new URL(redirectUrl, `${req.protocol}://${req.get('host')}`);
// Only allow redirects to our own domain
if (url.origin !== `${req.protocol}://${req.get('host')}`) {
return res.redirect('/');
}
res.redirect(url.pathname + url.search);
});Ejemplo Real
En 2023, una vulnerabilidad de redireccion abierta en el flujo de login de Microsoft fue usada en una campana de phishing a gran escala. Los atacantes enviaron correos con links a URLs legitimas de Microsoft que redirigian a paginas de recoleccion de credenciales. Como la URL inicial era microsoft.com, los filtros de seguridad de correo no marcaron los mensajes.
Cómo Prevenirlo
- Valida las URLs de redireccion contra una lista de dominios permitidos
- Solo permite redirecciones de rutas relativas y elimina el protocolo y host
- Usa parsing de URL para verificar que el origen coincida con el dominio de tu aplicacion
- Nunca pases URLs completas como parametros de redireccion — usa valores solo de ruta
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Condicion de Carrera en Pagos
highOperaciones de lectura-modificacion-escritura en pagos sin transacciones de base de datos permiten a los atacantes explotar ventanas de tiempo y gastar el mismo saldo multiples veces.
Manipulacion de Precios
criticalAceptar precios del cliente en vez de buscarlos del lado del servidor permite a los atacantes modificar requests de checkout y comprar productos al precio que elijan.
Feature Flags Expuestos
lowFeature flags incluidos en el bundle de JavaScript del frontend revelan funciones no lanzadas, configuraciones internas de testing y superficies de ataque potenciales a cualquiera que inspeccione el codigo.
Rutas de Debug en Produccion
mediumRutas de desarrollo y testing como /debug, /test, /seed o /api/dev dejadas activas en produccion exponen datos internos, bypassean autenticacion o permiten manipulacion de estado.