Neutralización de datos en las expresiones XQuery

RECU-0606 (Recurso Ejemplo)

Descripción

Cuando un software utiliza entradas externas para construir dinámicamente una expresión XQuery que se utiliza para recuperar información de una base de datos XML, pero no neutraliza, o no lo realiza correctamente la validación de esa entrada, permite a un atacante controlar la estructura de la consulta.

Ejemplos

Un atacante puede filtrar expresiones XQuery embebidas en otros documentos XML. Como la inyección sobre SQL, el atacante crea túneles sobre la aplicación como puntos de acceso con el objetivo de alterar las fuentes.

Un ejemplo sería el siguiente, el atacante accede al fichero accounts.xml para pedirle al proveedor del servicio que envié de vuelta todos los nombres de usuario

 "doc(accounts.xml)//user[name='*']. 

Este problema se evitaría, si se hubiesen utilizado consultas parametrizadas que garantizan la separación entre los datos y el plano de control. Además, se tendría que validar correctamente la entrada del usuario, rechazando los datos de forma apropiada. En resumen, asegurando que la entrada que se utiliza en las consultas XQL está a salvo en ese contexto.

 

Contenidos relacionados