Prevención de la inyección XXE

1

Me he topado con un método de explotación que no he tenido tiempo de investigar antes. Se dice que XML eXternal Entity es susceptible de un tipo de inyección del lado del servidor. Puedo especificar una Declaración de tipo de documento ( DOCTYPE ) para definir la estructura de XML. Dentro del DOCTYPE puedo definir entidades y asignarles valores particulares. Luego puedo usar las entidades en el código XML y el analizador las reemplazará con sus valores.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE doc[
  <!ENTITY pwd SYSTEM "file:///etc/passwd">
]>
<query>
  <name>Kiuhnm</name>
  <profession>&pwd;</profession>
</query>

Entonces, en ese caso, puedo leer archivos arbitrarios. Mi pregunta es: ¿es posible falsificar un parche basado en XML o debo hacer esto en el nivel del servidor y no permitir la lectura de archivos desde el exterior?

    
pregunta SkippyJack 02.03.2015 - 12:36
fuente

1 respuesta

3

Dependiendo de su biblioteca, debería poder configurar su analizador para ignorar entidades.

    
respondido por el wireghoul 02.03.2015 - 12:49
fuente

Lea otras preguntas en las etiquetas