Alle Materialien für Gareth Heyes' Black-Hat-Vortrag: CSS: die Bombe in Ihrem Posteingang.

Willkommen im Repository. Dieses Repository enthält das gesamte Material für meinen Vortrag „CSS: die Bombe in deinem Posteingang“. Dieses Repository enthält Proof-of-Concept-Code, Testfälle und unterstützendes Material, das ausschließlich für legitime Sicherheitsforschung, -analyse und defensive Tests identifiziert, entwickelt oder gesammelt wurde. Weitere Informationen zu dieser Forschung findest du unter: Research paper
Dieses Verzeichnis enthält den PoC für den CSS-Hotwiring-Angriff auf FastMail. Das erste Code-Snippet zeigt den unverschlüsselten Vektor ohne Kodierung. Das zweite Beispiel ist der kodierte Payload, der mutiert, wenn das CSSOM verwendet wird und der CSS-Code zurückgelesen wird.
Dieses Verzeichnis enthält den PoC, der den Angriff auf Medium mit Firefox demonstriert. Er generiert das CSS, um den Anfangs-, End- und Mittelteil des Tokens zu stehlen. Anschließend wird es in die Zwischenablage kopiert, wenn das Opfer auf den Button klickt. Ich habe die benötigten PHP-Dateien beigefügt, um die Token-Teile abzurufen. Die Textdateien müssen auf dem Server beschreibbar sein, und die .htaccess-Datei muss verwendet werden, um Informationen aus dem Pfad zu extrahieren.
Dieses Verzeichnis demonstriert die Token-Exfiltrationstechnik, um Textknoten zu stehlen, wenn CSP externe Ressourcen blockiert. Ich habe die Debugging-Informationen beigefügt, um zu verdeutlichen, wie es funktioniert.
Dies demonstriert das Stehlen von Tastatureingaben mit reinem HTML. Ich verwende kleine Unicode-Zeichen, um die Buchstaben zu verstecken. Das Marquee wird verwendet, um das Select abzuschneiden, damit es nicht wie eines aussieht.
Dieser PoC zeigt den Prompt, den ich verwendet habe, um Atlas davon zu überzeugen, Daten von der Seite zu holen und sie über die URL zu exfiltrieren, indem Tabs geöffnet werden. Du wirst feststellen, dass jede URL im Prompt steht – das liegt daran, dass Atlas den Prompt-Text offenbar mit den URLs vergleicht, die es öffnet, um zu entscheiden, ob ein Bestätigungsdialog angezeigt wird.
Dies enthält den PoC, den ich verwendet habe, um Outlook zu defacen. "data-tabster" ist das HTML-Attribut, das die Bibliothek benötigt, um das CSS-Gadget an den Knoten anzuhängen, wenn die E-Mail gelesen wird.
Das ist der Exploit für Outlook, den ich in meinem Vortrag demonstriert habe. Er täuscht den Anmeldebildschirm vor, nutzt den Animations-Trick, um ihn in Firefox in Echtzeit zu machen, und das Label macht das gefälschte Eingabefeld klickbar, wodurch das Verhalten des Anmeldebildschirms nachgebildet wird.
Das zeigt, wie ich Labels verwendet habe, um die Benutzeroberfläche in Outlook zu steuern und eine Angreifer-Nachricht im Posteingang des Opfers anzupinnen.
Unglaublicherweise ist es mir gelungen, einen voll funktionsfähigen Keylogger in bereinigtem CSS zu konstruieren. Dabei wird das CSS-Gadget verwendet, um den Bildschirm zu übernehmen. Es gibt jedoch Einschränkungen, da man nicht die volle Kontrolle über das CSS hatte. Siehe „Outlook-Firefox-Keylogger“ für die vollständige Version, die den Outlook-Anmeldebildschirm komplett nachahmt.
Dieser PoC zeigt, wie man Interest Invokers verwendet, um einen Echtzeit-Keylogger in Chrome zu erstellen.
Ich habe ein minimales CSS-Token-Exfiltrationstool erstellt, während ich Gitlab getestet habe. Du kannst es verwenden, wenn du eine Style-Injection hast und rekursive CSS-Importe erlaubt sind.
Shazzer hat es mir ermöglicht, Image-Proxy-Bypasses sowie verschiedene CSS-Eigenheiten und -Verhaltensweisen zu finden. Ich habe meine Vektoren öffentlich gemacht, damit du sehen kannst, wie sie entdeckt wurden. Du kannst die gesamte Sammlung von Vektoren über die folgende URL ansehen:
Hinweis:Die Vektoren werden nach meinem Vortrag öffentlich zugänglich gemacht.
Ich habe Hackvertor verwendet, um die CSS-Mutationen zu konstruieren. Das wurde mit dem cssEscape-Tag gemacht. Hackvertor hat außerdem eine „Copy as HTML“-Funktion, die einen Blob deiner Eingabe erstellt und in die Zwischenablage legt. Dies wurde verwendet, um Websites auf CSS-Injection per Einfügen zu testen.
Vergiss nicht, dir das Forschungspapier anzusehen!