Entità esterna XML - Enumerazione file locale (domanda di valutazione dell'impatto)

2

Mi ero imbattuto in una coppia di richiesta-risposta XML durante il test di un'applicazione Web e ho tentato di iniettare payload XXE. Si noti che in questo caso nessun parametro XML inviato nella richiesta è stato riflesso nella risposta. Tuttavia, poiché la richiesta e la risposta erano in XML, ho deciso di provare i carichi utili XXE.

Sebbene non sia stato possibile includere alcun file locale dal server nella risposta, ho ricevuto risposte HTTP diverse per la richiesta contenente nomi di file validi e non validi. per esempio.

<!ENTITY file SYSTEM "file:///etc/hosts" (valid file) 
<!ENTITY file SYSTEM "file:///etc/hosts1" (invalid file)

Per ciascuno dei casi sopra indicati sono state ricevute risposte HTTP diverse. Il nome file valido ha restituito una risposta XML senza errori e il nome file non valido ha restituito un errore di analisi XML che indicava chiaramente "file non trovato".

Ho finito con il mio rapporto per l'attività e ho segnalato questo problema come "Enumerazione del nome file a causa di errori di analisi XML". Tuttavia, ero curioso dei diversi modi in cui questa vulnerabilità può essere sfruttata per ottenere maggiori informazioni sul server back-end e vorrei ricevere tutti gli input per valutare l'impatto tecnico di questa vulnerabilità.

    
posta Shurmajee 11.10.2015 - 19:54
fonte

1 risposta

1

Non una risposta completa, ma vale la pena notare che XXE può spesso essere un bug del DoS e un bug di divulgazione di informazioni. Prova a leggere da /dev/zero o \.\pipe\atsvc o qualsiasi altro tipo di pipe / socket / file speciale che non finisce mai o semplicemente bloccherà per sempre. Naturalmente, se XXE funziona, in genere puoi anche eseguire un'espansione dell'entità ricorsiva (alias Billion Ride , che è anche piuttosto facile DoS.

XXE può anche essere usato per ruotare una scansione di rete dietro il firewall del server. Non è necessario specificare uno schema URI file: ; http: , https: , ftp: e così via anche il lavoro. È inoltre possibile specificare porte non standard, il che è utile quando si cercano elementi come determinate interfacce di amministrazione. Questo è, ovviamente, più utile quando si ha accesso ai contenuti di tali URL, ma solo sapere che i servizi ci sono è spesso utile.

È molto strano che tu non sia riuscito a ottenere il contenuto del file. Di solito è possibile in un modo o nell'altro, tramite un messaggio di errore o specificando il contenuto del file come input fornito dall'utente e quindi leggendolo utilizzando un'altra funzione (come in "perché sì, il mio indirizzo di casa è il contenuto della tua chiave privata TLS! ").

    
risposta data 11.10.2015 - 23:29
fonte

Leggi altre domande sui tag