Prevenire l'iniezione XXE

1

Mi sono imbattuto in un metodo di exploit che non ho avuto il tempo di indagare prima. XML eXternal Entity è detto suscettibile di un tipo di iniezione lato server. Posso specificare una dichiarazione del tipo di documento ( DOCTYPE ) per definire la struttura di XML. All'interno di DOCTYPE posso definire entità e assegnare loro valori particolari. Quindi posso usare le entità nel codice XML e il parser le sostituirà con i loro valori.

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

Quindi nel qual caso riesco a leggere file arbitrari. La mia domanda è: è possibile creare una patch basata su XML o dovrei farlo a livello di server e non consentire la lettura dei file dall'esterno?

    
posta SkippyJack 02.03.2015 - 12:36
fonte

1 risposta

3

A seconda della tua libreria dovresti essere in grado di configurare il tuo parser per ignorare le entità.

    
risposta data 02.03.2015 - 12:49
fonte

Leggi altre domande sui tag