- Google non ospita ChromeSetup.bat. Un requisito per questo attacco è che un sito web deve avere un endpoint con un Content-Type meno comune e preferibilmente un'intestazione Content-Disposition mal configurata (vale a dire: nessun attributo 'filename'). Queste due intestazioni fanno sì che il browser scarichi la risposta come un file, invece di renderlo.
Nell'URL si fornisce che l'endpoint è "/ s" che fornisce suggerimenti di completamento automatico come JSON, con un tipo di contenuto di applicazione / json. Le versioni precedenti di IE richiedono un download solo in base al tipo di contenuto, alle versioni più recenti e Chrome richiede quell'intestazione content-disposition incompleta per questo attacco.
Un altro requisito è che questo endpoint rifletta alcuni input dell'utente da querystring (i dati di post o cookie funzioneranno ovviamente bene ma non sarebbero altrettanto efficaci per l'utente malintenzionato). Ciò fornirà il contenuto dannoso del file che viene scaricato.
Nell'URL che hai fornito questo sarà il valore del parametro querystring.
Poiché non viene fornito alcun nome file per il download, i browser cercano di sceglierne uno. Poiché il sito Web di Google ha consentito la ricezione di url non validi tramite i parametri url (la parte; /ChromeSetup.bat;), il browser ha scelto una versione pulita di quello (ovvero ChromeSetup.bat) come nome file da presentare all'utente. La webapplication ignora questo input, ma il browser lo usa.
- Qualsiasi browser su qualsiasi sistema operativo potrebbe rispondere in questo modo. Chrome scaricherà la risposta con il nome file falsificato, che funzionerà anche su OSX.
In Windows esiste un'ulteriore debolezza che non avvisa l'utente correttamente quando "setup" si verifica nel nome del file. Windows eseguirà anche direttamente un file .bat se si fa clic su di esso. Osx e Linux non eseguiranno questo file poiché molto probabilmente l'autore dell'attacco non è in grado di fornire uno script completo con la notazione hashbang. Anche in questo caso, non ha il bit eseguibile impostato, quindi non verrà eseguito direttamente.
- L'utente deve ancora attivare / accettare il download, quindi basta guidare con un non causerà "infezione" immediata. Un client (browser) dovrebbe fornire avvisi appropriati per i file eseguibili invece di eseguirli semplicemente. L'utente dovrebbe sapere meglio di eseguire file .bat casuali, ma questa è la forza di questo attacco: il "file" viene pubblicato da Google.com, quindi dovrebbe essere sicuro, giusto? La parte più importante qui è il sito Web vulnerabile: il sito Web non dovrebbe consentire a un utente di fornire un percorso personalizzato, dovrebbe fornire intestazioni appropriate per evitare ciò e dovrebbe riconsiderare la riflessione sull'input dell'utente.