Inyección XPath
¿Qué es Inyección XPath?
Inyección XPathFallo de inyección en el que entrada no confiable altera una consulta XPath sobre un documento XML, permitiendo exfiltración de datos o bypass de autenticación.
La inyección XPath ocurre cuando una aplicación construye consultas XPath sobre un documento XML concatenando entrada del usuario, de forma análoga a la inyección SQL clásica. Un atacante puede salir de la expresión esperada con comillas, tautologías booleanas como ' or '1'='1, o comentarios, para extraer nodos arbitrarios, eludir formularios de login basados en XML o realizar exfiltración ciega mediante oráculos booleanos y de temporización. El fallo es común en servicios SOAP heredados, backends de configuración y aplicaciones que guardan credenciales en archivos XML. Las defensas incluyen APIs XPath parametrizadas, validación estricta y migrar consultas sensibles a almacenes seguros.
● Ejemplos
- 01
Consulta de login: //user[name/text()='admin' or '1'='1' and password/text()='x'] evita la autenticación.
- 02
Exfiltración ciega XPath mediante condiciones booleanas como substring(//secret,1,1)='a'.
● Preguntas frecuentes
¿Qué es Inyección XPath?
Fallo de inyección en el que entrada no confiable altera una consulta XPath sobre un documento XML, permitiendo exfiltración de datos o bypass de autenticación. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa Inyección XPath?
Fallo de inyección en el que entrada no confiable altera una consulta XPath sobre un documento XML, permitiendo exfiltración de datos o bypass de autenticación.
¿Cómo funciona Inyección XPath?
La inyección XPath ocurre cuando una aplicación construye consultas XPath sobre un documento XML concatenando entrada del usuario, de forma análoga a la inyección SQL clásica. Un atacante puede salir de la expresión esperada con comillas, tautologías booleanas como ' or '1'='1, o comentarios, para extraer nodos arbitrarios, eludir formularios de login basados en XML o realizar exfiltración ciega mediante oráculos booleanos y de temporización. El fallo es común en servicios SOAP heredados, backends de configuración y aplicaciones que guardan credenciales en archivos XML. Las defensas incluyen APIs XPath parametrizadas, validación estricta y migrar consultas sensibles a almacenes seguros.
¿Cómo defenderse de Inyección XPath?
Las defensas contra Inyección XPath combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Inyección XPath?
Nombres alternativos comunes: Inyección de consultas XPath.
● Términos relacionados
- attacks№ 1084
Inyección SQL
Ataque de inyección de código que incrusta SQL controlado por el atacante en una consulta a la base de datos para leer, modificar o destruir datos.
- attacks№ 612
Inyección LDAP
Ataque de inyección que manipula filtros de búsqueda o DNs de LDAP mediante entradas sin sanear para eludir la autenticación o leer datos del directorio.
- attacks№ 1255
Inyección XML
Ataque que introduce etiquetas, atributos o fragmentos XPath maliciosos en el procesamiento XML de una aplicación para alterar la lógica o extraer datos.
- attacks№ 1257
Ataque XXE
Ataque contra analizadores XML que abusa de la resolución de entidades externas para leer archivos, sondear redes internas o provocar denegación de servicio.
- appsec№ 538
Validación de entrada
Comprobación del lado del servidor que verifica que cada entrada no confiable cumple el tipo, longitud, rango, formato y conjunto de valores esperados antes de ser procesada.
- attacks№ 202
Inyección de comandos
Ataque en el que la entrada del usuario se pasa sin saneamiento a un intérprete del sistema, haciendo que la aplicación ejecute comandos proporcionados por el atacante.