Resumen
La página de inicio de sesión federado afectada, servida por ADFS en la ruta /adfs/ls, cargaba un script JavaScript propio para personalizar su aspecto. Ese script tomaba dos parámetros de la URL, infotext y signintext, y los insertaba en la página con innerHTML.
El resultado es una inyección de HTML reflejada: quien construya el enlace decide qué marcado aparece dentro de la pantalla de login real. El investigador (firecompass-ai) lo aprovechó para añadir un falso "aviso de seguridad" con un enlace a un dominio externo, justo debajo del formulario de acceso. El reporte se clasificó como validación de entrada incorrecta, con severidad alta.
En el reporte publicado los nombres de dominio aparecen censurados (████████).
Pasos de reproducción
- Abrir en el navegador el endpoint de ADFS con los parámetros manipulados.
signintextlleva un texto marcador yinfotextlleva HTML codificado en la URL (un encabezado, un párrafo y un enlace):
https://████████/adfs/ls?wa=wsignin1.0&wtrealm=https%3A%2F%2Fwww.████████.ro%2Fconnect&whr=AD%20AUTHORITY&portalui=████████extdev&signintext=SIGNIN_MIN_93470&infotext=%3Ch2%20id%3Dphish93470%3ESecurity%20notice%3C%2Fh2%3E%3Cp%3EContinue%20to%20verify.%3C%2Fp%3E%3Ca%20id%3Dlink93470%20href%3Dhttps%3A%2F%2Fexample.com%2F%3EContinue%3C%2Fa%3E
Decodificado, el valor de infotext es:
<h2 id=phish93470>Security notice</h2><p>Continue to verify.</p><a id=link93470 href=https://example.com/>Continue</a>
- Comprobar que la cadena
SIGNIN_MIN_93470aparece en la zona de mensajes del login y que, bajo el formulario, se ven un encabezado "Security notice" y un enlace "Continue" que no forman parte de la página original. Eso confirma que el HTML del parámetro se interpreta. - Pasar el ratón por encima de "Continue": apunta a
https://example.com/, un dominio ajeno. Al pulsarlo, el navegador sale hacia esa web externa.
Impacto
El contenido controlado por el atacante se muestra dentro de una página de autenticación real que se usa para el inicio de sesión federado. Según el reporte, esto permite:
- Hacer que los usuarios sigan enlaces del atacante presentados como parte del propio login (phishing o distribución de malware).
- Robar credenciales mediante ingeniería social, convenciendo a la víctima de introducirlas en contenido inyectado (por ejemplo, instrucciones o elementos de formulario falsos).
El investigador señala que, aunque ese subdominio estaba fuera del alcance del programa, el enlace pertenece a la empresa, lo que aumenta mucho el riesgo para sus clientes: robo de credenciales, páginas falsas y daño a la reputación de la marca.
Remediación
El reporte figura como resuelto, pero no detalla qué se cambió. Como recomendación general para este tipo de fallo, los valores de la URL no deberían insertarse con innerHTML, sino tratarse como texto (por ejemplo con textContent).