Todos os materiais para a palestra de Gareth Heyes na Black Hat: CSS: a bomba dentro da sua caixa de entrada.

Bem-vindo ao repositório. Este repositório contém todos os materiais da minha apresentação "CSS: a bomba dentro da tua caixa de entrada". Este repositório contém código de prova de conceito, casos de teste e material de apoio que foram identificados, desenvolvidos ou recolhidos exclusivamente para fins de pesquisa de segurança legítima, análise e testes defensivos. Podes ler sobre esta investigação em: artigo de investigação
Este diretório contém a PoC do ataque CSS hotwiring no FastMail. O primeiro excerto de código mostra o vetor em texto simples sem estar codificado. O segundo exemplo é o payload codificado, e ele sofre mutação quando a CSSOM é usada e o código CSS é lido de volta.
Este diretório contém a PoC que demonstra o ataque no Medium usando o Firefox. Gera o CSS para roubar o início, o fim e a parte central do token. Depois, copia-o para a área de transferência quando a vítima clica no botão. Incluí os ficheiros PHP necessários para recuperar as partes do token. Os ficheiros de texto precisam de ser graváveis no servidor e o ficheiro .htaccess precisa de ser usado para extrair informações do caminho.
Este diretório demonstra a técnica de exfiltração de tokens para roubar nós de texto quando a CSP está a bloquear recursos externos. Incluí as informações de depuração para tornar claro como funciona.
Isto demonstra o roubo de teclas usando HTML puro. Uso pequenos caracteres Unicode para esconder as letras. O marquee é usado para cortar o select para que ele não pareça um select.
Esta PoC mostra o prompt que usei para convencer o Atlas a obter dados da página e exfiltrá-los através do URL ao abrir separadores. Repara que cada URL está no prompt, porque o Atlas parecia comparar o texto do prompt com os URLs que abre para decidir se abre um prompt de confirmação.
Isto contém a PoC que usei para desfigurar o Outlook. "data-tabster" é o atributo HTML necessário para que a biblioteca anexe o gadget CSS ao nó quando o email é lido.
Este é o exploit no Outlook que demonstrei na minha apresentação. Falsifica o ecrã de login, usa o truque de animação para o tornar em tempo real no Firefox, e o label torna o input falso clicável, o que reproduz o comportamento do ecrã de login.
Isto mostra como usei labels para controlar a interface do Outlook e fixar a mensagem de um atacante na caixa de entrada da vítima.
Inacreditavelmente, consegui construir um keylogger totalmente funcional em CSS sanitizado. Isto usa o gadget CSS para assumir o controlo do ecrã. Mas tem limitações, já que não tinha controlo total sobre o CSS. Vê o "Outlook Firefox keylogger" para a versão completa que falsifica completamente o ecrã de login do Outlook.
Esta PoC mostra como usar Interest Invokers para criar um keylogger em tempo real no Chrome.
Criei uma ferramenta mínima de exfiltração de tokens CSS enquanto testava o Gitlab. Podes usá-la se tiveres uma injeção de estilo e se forem permitidas importações CSS recursivas.
Shazzer permitiu-me encontrar bypasses de proxy de imagens e várias peculiaridades e comportamentos de CSS. Tornei os meus vetores públicos para que possas ver como foram descobertos. Podes ver a coleção completa de vetores com o seguinte URL:
Nota: Os vetores serão tornados públicos após a minha apresentação.
Usei o Hackvertor para construir as mutações de CSS. Isto foi feito usando a tag cssEscape. O Hackvertor também tem uma funcionalidade "Copy as HTML" que cria um blob da tua entrada e coloca-o na área de transferência. Isto foi usado para testar sites quanto a injeção de CSS a partir de colagem.
Não te esqueças de consultar o artigo de investigação!