Todos los materiales para la charla de Gareth Heyes en Black Hat: CSS: la bomba dentro de tu bandeja de entrada.

Bienvenido al repositorio. Este repositorio contiene todos los materiales de mi charla "CSS: la bomba dentro de tu bandeja de entrada". Este repositorio contiene código de prueba de concepto, casos de prueba y material de apoyo que fueron identificados, desarrollados o recopilados únicamente con fines de investigación legítima de seguridad, análisis y pruebas defensivas. Puedes leer sobre esta investigación en: Artículo de investigación
Este directorio contiene la PoC del ataque de CSS hotwiring contra FastMail. El primer fragmento de código muestra el vector en texto plano sin codificar. El segundo ejemplo es el payload codificado, y muta cuando se usa CSSOM y se lee de vuelta el código CSS.
Este directorio contiene la PoC que demuestra el ataque contra Medium usando Firefox. Genera el CSS para robar la parte inicial, final y media del token. Luego lo copia al portapapeles cuando la víctima hace clic en el botón. He incluido los archivos PHP necesarios para recuperar las partes del token. Los archivos de texto deben tener permisos de escritura en el servidor y el archivo .htaccess debe utilizarse para extraer información de la ruta.
Este directorio demuestra la técnica de exfiltración de tokens para robar nodos de texto cuando CSP está bloqueando recursos externos. He incluido la información de depuración para que quede claro cómo funciona.
Esto demuestra el robo de pulsaciones de teclado usando HTML puro. Utilizo pequeños caracteres unicode para ocultar las letras. La marquesina se usa para recortar el select y que no parezca uno.
Esta PoC muestra el prompt que usé para convencer a Atlas de obtener datos de la página y exfiltrarlos a través de la URL abriendo pestañas. Notarás que cada URL está en el prompt porque Atlas parecía comparar el texto del prompt con las URLs que abre para decidir si muestra un prompt de confirmación.
Esto contiene la PoC que usé para desfigurar Outlook. "data-tabster" es el atributo HTML necesario para que la librería añada el gadget CSS al nodo cuando se lee el correo.
Este es el exploit contra Outlook que demostré en mi charla. Suplanta la pantalla de inicio de sesión, usa el truco de la animación para que sea en tiempo real en Firefox y la etiqueta hace clicable la entrada falsa, lo que reproduce el comportamiento de la pantalla de inicio de sesión.
Esto muestra cómo usé etiquetas para controlar la interfaz de Outlook y fijar el mensaje de un atacante en la bandeja de entrada de la víctima.
Increíblemente, logré construir un keylogger totalmente funcional en CSS saneado. Esto usa el gadget CSS para tomar el control de la pantalla. Pero tiene limitaciones porque no se tiene control total sobre el CSS. Consulta el "Keylogger de Outlook para Firefox" para ver la versión completa que suplanta por completo la pantalla de inicio de sesión de Outlook.
Esta PoC muestra cómo usar Interest Invokers para crear un keylogger en tiempo real en Chrome.
Creé una herramienta mínima de exfiltración de tokens CSS mientras probaba Gitlab. Puedes usarla si tienes una inyección de estilo y se permiten importaciones CSS recursivas.
Shazzer me permitió encontrar bypasses del proxy de imágenes y varios comportamientos y rarezas de CSS. He hecho públicos mis vectores para que puedas ver cómo se descubrieron. Puedes ver la colección completa de vectores con la siguiente URL:
Nota: Los vectores se harán públicos después de mi charla.
Usé Hackvertor para construir las mutaciones CSS. Esto se hizo usando la etiqueta cssEscape. Hackvertor también tiene una función "Copy as HTML" que crea un blob de tu entrada y lo coloca en el portapapeles. Esto se usó para sondear sitios en busca de inyección de CSS al pegar.
¡No olvides consultar el Artículo de investigación!