PHP loadXML è vulnerabile all'attacco XXE (e ad altri attacchi)? Esiste un elenco di funzioni vulnerabili?

12

Ho codice PHP che usa la funzione loadXML (così come altre funzioni XML).

  1. La funzione loadXML è vulnerabile all'attacco XXE? Vale a dire, se l'XML contiene entità esterne, saranno interpretate?

  2. Questa funzione è vulnerabile ad altri attacchi basati su XML? Ad esempio, l'attacco DoS di Billion ride?

  3. Puoi fare riferimento a un elenco di funzioni vulnerabili a XXE e ad altri attacchi correlati a XML?

So che è possibile bloccare facilmente gli attacchi XXE in PHP modificando le impostazioni. Tuttavia, sarò lieto di ottenere risposte alle domande che ho sollevato.

    
posta Gari BN 15.08.2016 - 11:05
fonte

1 risposta

14

Is the loadXML function vulnerable to XXE attack? Namely, if the XML contains external entities, will they be interpreted?

Per impostazione predefinita, no.

Le entità esterne non vengono analizzate senza LIBXML_NOENT impostato. Se libxml_disable_entity_loader è impostato su true, nemmeno LIBXML_NOENT consentirà XXE.

Is this function vulnerable to other XML based attacks? e.g., the Billion Laughs DoS attack?

No, miliardi di risate saranno catturate con le impostazioni predefinite:

DOMDocument::loadXML(): Detected an entity reference loop in Entity

Ciò che non verrà catturato è quadratic blowup . Nota che le entità devono essere effettivamente sostituite, che può essere eseguita tramite nome piuttosto scadente LIBXML_NOENT o semplicemente accedendo al nodo (es. tramite textContent ).

    
risposta data 15.08.2016 - 11:39
fonte

Leggi altre domande sui tag