
All the materials for Gareth Heyes' Black Hat talk: CSS: the bomb inside your inbox.

Bienvenue dans ce dépôt. Ce dépôt contient tous les supports de ma présentation « CSS : la bombe dans votre boîte de réception ». Ce dépôt contient des codes de preuve de concept, des cas de test et du matériel d'appui qui ont été identifiés, développés ou collectés uniquement à des fins de recherche en sécurité, d'analyse et de tests défensifs légitimes. Vous pouvez lire les détails de cette recherche à l'adresse : Article de recherche
Ce répertoire contient la preuve de concept de l'attaque CSS hotwiring sur FastMail. Le premier extrait de code montre le vecteur en texte clair sans encodage. Le second exemple est la charge utile encodée, qui mute lorsque le CSSOM est utilisé et que le code CSS est relu.
Ce répertoire contient la preuve de concept démontrant l'attaque sur Medium avec Firefox. Elle génère le CSS pour voler le début, la fin et le milieu du jeton. Elle le copie ensuite dans le presse-papiers lorsque la victime clique sur le bouton. J'ai inclus les fichiers PHP nécessaires pour récupérer les parties du jeton. Les fichiers texte doivent être inscriptibles sur le serveur et le fichier .htaccess doit être utilisé afin d'extraire les informations du chemin.
Ce répertoire démontre la technique d'exfiltration de jetons pour voler des nœuds texte lorsque la CSP bloque les ressources externes. J'ai inclus les informations de débogage pour clarifier son fonctionnement.
Ceci démontre le vol de frappes clavier en HTML pur. J'utilise de petits caractères Unicode pour masquer les lettres. La balise marquee est utilisée pour couper le select afin qu'il ne ressemble pas à un select.
Cette preuve de concept montre l'invite que j'ai utilisée pour convaincre Atlas d'extraire des données de la page et de les exfiltrer via l'URL en ouvrant des onglets. Vous remarquerez que chaque URL est dans l'invite, car Atlas semblait comparer le texte de l'invite avec les URL qu'il ouvre pour décider d'afficher ou non une invite de confirmation.
Ceci contient la preuve de concept que j'ai utilisée pour défigurer Outlook. « data-tabster » est l'attribut HTML nécessaire pour que la bibliothèque ajoute le gadget CSS au nœud lorsque l'e-mail est lu.
Ceci est l'exploit sur Outlook que j'ai présenté dans ma conférence. Il usurpe l'écran de connexion, utilise l'astuce d'animation pour le rendre temps réel sur Firefox, et le label rend le faux champ de saisie cliquable, ce qui reproduit le comportement de l'écran de connexion.
Ceci montre comment j'ai utilisé des labels pour contrôler l'interface d'Outlook afin d'épingler le message d'un attaquant dans la boîte de réception de la victime.
Incroyablement, j'ai réussi à construire un keylogger entièrement fonctionnel en CSS assaini. Cela utilise le gadget CSS pour prendre le contrôle de l'écran. Mais il a des limitations, car vous n'aviez pas un contrôle total sur le CSS. Voir « Outlook Firefox keylogger » pour la version complète qui usurpe entièrement l'écran de connexion d'Outlook.
Cette preuve de concept montre comment utiliser les Interest Invokers pour créer un keylogger en temps réel dans Chrome.
J'ai créé un outil minimal d'exfiltration de jetons CSS lors de tests sur Gitlab. Vous pouvez l'utiliser si vous disposez d'une injection de style et si les imports CSS récursifs sont autorisés.
Shazzer m'a permis de trouver des contournements de proxy d'images et diverses bizarreries et comportements CSS. J'ai rendu mes vecteurs publics afin que vous puissiez voir comment ils ont été découverts. Vous pouvez consulter l'ensemble de la collection de vecteurs avec l'URL suivante :
Collection « CSS : la bombe dans votre boîte de réception »
Remarque:Les vecteurs seront rendus publics après ma conférence.
J'ai utilisé Hackvertor pour construire les mutations CSS. Cela a été fait à l'aide de la balise cssEscape. Hackvertor dispose également d'une fonctionnalité « Copy as HTML » qui crée un blob de votre entrée et le place dans le presse-papiers. Cela a été utilisé pour sonder les sites à la recherche d'injections CSS à partir du collage.
N'oubliez pas de consulter l'article de recherche !