Gli exploit del browser basati esclusivamente su HTML + CSS

3

Nel 2011, Eli Fox-Epstein ha dimostrato una macchina della regola 110 in HTML + CSS3 .

Ciò ha portato alcuni a dire che la combinazione di HTML + CSS3 è Turing completo .

Indipendentemente dal fatto che HTML + CSS3 sia tecnicamente completato da Turing, esegui puramente i browser degli attacchi di exploit noti (in natura o pubblicati come proof-of-concept) (non plug-in, componenti aggiuntivi, ecc.) utilizzando HTML + CSS?

Se è così, per favore riassumi almeno uno di questi exploit.

    
posta sampablokuper 19.05.2016 - 16:47
fonte

1 risposta

7

, in passato ci sono stati molti exploit che si basavano solo su codice HTML e CSS dannoso.

Hai ragione in quanto l'analisi di un linguaggio complesso e completo è potenzialmente più soggetto a errori, dando a un aggressore più strumenti per creare un exploit. Tuttavia, ci sono molti modi diversi in cui l'implementazione del parser CSS usato o di altri moduli coinvolti nell'elaborazione del codice può essere vulnerabile.

Come esempio , prendi CVE-2010-2752 - Carattere di Mozilla Firefox CSS Vulnerabilità legata all'esecuzione di codice in modalità remota . Questa vulnerabilità può essere attivata semplicemente creando un sito Web con regole CSS font-face appositamente predisposte e tuttavia ha il potenziale per compromettere l'host.

Il codice errato si trovava nel parser CSS di Mozilla e presentava un bug insignificante: quando allocavo memoria per memorizzare i riferimenti font-face , per l'indice veniva utilizzato un numero intero a 16 bit. Tuttavia, quando i valori effettivi sono stati compilati, è stato utilizzato un numero intero a 32 bit. Questa incoerenza ha comportato un overflow di un intero quando un foglio di stile ha fornito un numero eccessivo di riferimenti a font esterni. Di conseguenza, un utente malintenzionato può scrivere in posizioni di memoria impreviste e trasformare l'overflow dell'indice in un exploit di codice arbitrario

.

Poiché la maggior parte del nucleo di Mozilla è scritto in C ++, non esiste una protezione da overflow incorporata e gli sviluppatori sono incaricati di gestire in modo sicuro la memoria. Un browser scritto in Python probabilmente affronterà tipi molto diversi di vulnerabilità (e sarà anche dolorosamente lento).

    
risposta data 19.05.2016 - 17:29
fonte

Leggi altre domande sui tag