Javascript Hijacking

La tecnica del Javascript Hijacking viene usata da un pirata informatico per mascherarlo come un utente valido e abilitato a leggere opportuni dati sensibili da una web application vulnerabile. In particolar modo si serve della tecnologia Ajax (Asynchronous Javascript and XML).

L’hijacking con javascript permette all’attaccante di guadagnare l’accesso ai dati attraverso una scappatoia in cui un sito web fa uso di javascript per la trasmissione dei dati in un modello client-server (Vedi JSON), esso viene dunque manipolato per eseguire codice javascript su altri siti web, con differenti domini e host. Ad esempio permettere il login ad una Web Mail Application che fa uso di Ajax.

Ajax è un metodo per realizzare applicazioni web interattive (abbandonando il classico modello botta e risposta tipico del protocollo HTTP), ajax fornisce quindi una dinamicità ulteriore alle pagine, sfruttando linguaggi come Javascript (che possono interagire con il nostro browser e provocare l’apertura di popup, nascondere status bar, cambiare testo nella pagina, colori o altri ornamenti grafici, cambiare cookie o leggere i cookie attuali). Esso è integrato nell’HTML e viene interpretato dal browser. E’ molto comodo l’utilizzo di Ajax soprattutto perchè permette dopo una certa azione, di aggiornare e modificare immediatamente i contenuti nella pagina, senza alcun refresh.

Riepilogando, un attaccante prende di mira un sistema che utilizza la Javascript Object Notation (JSON) come meccanismo di comunicazione fra client server (Molto comune nel Web 2.0 attraverso AJAX). Questo per sottrarre informazioni confidenziali trasmessi dai due. Ciò è possibile perchè i browser ed il modello DOM non proibiscono di includere ed eseguire javascript da un sito, nei contenuti di un altro.

L’attaccante dunque fa in modo che la vittima visiti la pagina con il codice malevolo che farà in modo di richiedere alla URL del server con cui comunica in JSON delle risposte con contenuti potenzialmente confidenziali. La pagina malevola contiene inoltre del codice adibito proprio alla cattura degli oggetti JSON restituiti dal server e alla sua ritrasmissione verso i server dell’attaccante.

Non c’è niente nel classico modello di sicurezza dei browser che previene l’esecuzione di questo codice javascript malevolo (che ha origine da una pagina dell’attaccante) per creare un ambiente il cui fine è intercettare le risposte JSON di un server nei confronti del client intaccato. Il browser si limita a proteggere il modello a oggetti DOM non il JSON.

 

Torna all'inizio