Vulnerabilidad producida por la necesidad propia de la aplicación de redireccionar al usuario a una página no segura, el atacante crea enlaces para que la víctima haga clic que luego son llevados a una aplicación de confianza y allí los atacantes instalan el código malicioso.
IDENTIFICACION DE LA VULNERABILIDAD
- Revisar el código para detectar redirecciones o reenvíos (llamados transferencias en .NET), identificar si la URL se incluye en el valor de un parámetro y si está validada con una lista blanca.
- Modificar la URL de destino en caso de redirección de códigos de respuesta DTTP 300-307, típicamente 302, observando los parámetros antes de la redirección si son una URL de destino o un recurso de la misma.
- Revisar si cada parámetro forma parte de una redirección o un reenvío de una URL de destino y probar que hace.
- Errores en el tratamiento de redirecciones y uso de datos no confiables como destino.
PREVENCIÓN
- Evitar el uso de redirecciones y reenvíos
- No involucrar parámetros manipulables por el usuario para definir el destino.
- Si se hace necesario utilizar parámetros de destino, asegúrese de que el valor suministrado sea válido y autorizado para el usuario.
- Se recomienda utilizar parámetros de destino con valor de mapeo, se puede utilizar ESAPI para asegurarse que los destinos redirigidos sean seguros
- Se recomienda utilizar un valor de mapeo en el valor del parámetro de destinom enn el lugar de una dirección URL y en el código del servidor, traducir dicho valor a la dirección URL del destino.