Explosiones del navegador basadas únicamente en HTML + CSS

3

En 2011, Eli Fox-Epstein demostró una máquina Rule 110 en HTML + CSS3 .

Esto llevó a algunos a decir que la combinación de HTML + CSS3 es Turing complete .

Independientemente de si HTML + CSS3 está técnicamente completo o no, realiza cualquier vulnerabilidad conocida (en la naturaleza o se publica como prueba de concepto) atacando a los navegadores (no a los complementos, complementos, etc.) puramente ¿Utilizando HTML + CSS?

Si es así, resuma al menos una de estas vulnerabilidades.

    
pregunta sampablokuper 19.05.2016 - 16:47
fuente

1 respuesta

7

Sí , en el pasado hubo muchas vulnerabilidades que solo se basaban en códigos HTML y CSS maliciosos.

Tienes razón en que analizar un lenguaje complejo y completo es potencialmente más propenso a errores, lo que le brinda al atacante más herramientas para crear un exploit. Sin embargo, hay muchas maneras diferentes en que la implementación del analizador CSS u otros módulos involucrados en el procesamiento del código puede ser vulnerable.

Como ejemplo , toma CVE-2010-2752 - fuente CSS de Mozilla Firefox -Vulnerabilidad de ejecución remota de código . Esta vulnerabilidad se podría desencadenar simplemente creando un sitio web con reglas CSS font-face especialmente diseñadas y, sin embargo, tenía el potencial de comprometer al host.

El código defectuoso se encontraba en el analizador CSS de Mozilla y tenía un error trivial: al asignar memoria para almacenar las referencias font-face , se usaba un entero de 16 bits para el índice. Sin embargo, cuando se completaron los valores reales, en su lugar se usó un entero de 32 bits. Esta incoherencia llevó a un desbordamiento de enteros cuando una hoja de estilo proporcionó un número excesivo de referencias de fuentes externas. En consecuencia, un atacante podría escribir en ubicaciones de memoria inesperadas y convertir el desbordamiento de índice en una vulnerabilidad de ejecución de código arbitrario .

Dado que la mayoría del núcleo de Mozilla está escrito en C ++, no hay una protección contra desbordamiento integrada y los desarrolladores se encargan de manejar la memoria de forma segura. Un navegador escrito en Python probablemente enfrentaría diferentes tipos de vulnerabilidades (y también sería muy lento).

    
respondido por el Arminius 19.05.2016 - 17:29
fuente

Lea otras preguntas en las etiquetas